Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Datenbank Zeichensatz utf-8

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.11.2005
    Beiträge
    21

    Datenbank Zeichensatz utf-8

    Hallo,

    eine Software soll von einer Datenbank Artikelbezeichnungen lesen. Diese sind in verschiedenen Sprachen.

    Sollte ich von Anfang an alles auf utf-8 einstellen ???

    Oder spielt das bei der Datenbank selber keine Rolle ???

    Am Client, Linuxconsole müsste ich dann auch überall utf-8 einstellen und ich kann alle Zeichen überall anzeigen oder ???

    Dankääääää

  2. #2
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    Ich würde für alles eine einheitliche Kodierung wählen, also auch die Datenbank au utf-8 stellen. Andernfalls kann es dir passieren, dass du irgendwo den Codewechsel vergisst und dann in Teufels Küche kommst. Ob es für die Datenbank einen Unterschied macht, kann ich nicht genau sagen, aber wenn ein varchar eine 1-Byte-Kodierung erwartet, kann er möglicherweise über utf-8 stolpern oder eine geringere Länge erlauben.

    Wenn du nicht direkt von der Konsole auf die Datenbank zugreifst, ist die dortige Kodierung nicht so wichtig, die bei den Client-Programmen hingegen schon, auch beim Text-Export/Import spielt es eine Rolle.
    Das Ziel ist das Ziel.

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.12.2002
    Ort
    Matrix
    Beiträge
    194
    falls es hier um oracle geht:

    utf8 (altes utf8) ist mist (längensemantikproblem und performance) und würde ich nicht als default zeichensatz nehmen. besser ist ein zeichensatz fester breite, z.b. 1byte-zeichensatz wie we8iso8859p15 als default und einen utf-zeichensatz wie al32utf8 als national character set.
    die spalten mit den artikelbezeichnungen dann einfach als nvarchar2 definieren, damit gibt es am wenigsten probleme.


    -j

  4. #4
    Registrierter Benutzer
    Registriert seit
    22.11.2005
    Beiträge
    21
    Hammer !!! Also ich Fall noch tot um.

    Jetzt lasse ich den sqlserver mit default-character-set=utf8 in my.cnf laufen. Erstelle eine Tabelle und nem Datensatz "Müller". Bei php gebe ich an, dass es sich um eine UTF-8 Kodierung handelt und er zeigt dann auch Müller richtig auf der Webseite an.

    Gehe ich aber über mysql von einer Linuxconsole, erhalte ich ein Fragezeichen, obwohl ein echo $LANG ein de_DE.UTF-8 ergibt. Egal was ich in LANG oder LC_ALL angebe, es interessiert ihn nicht !!!

    Was auch merkwürdig ist: Ein vorheriger Eintrag Müller wird als M?ller auf der Console angezeigt. Lasse ich den Server auf utf-8 laufen, trage Müller neu ein, erhalte ich auf der Console ein ??????. Hääää ???

    Erstelle ich eine Datei mit dem VI und gebe Umlaut ein, sagt er mir unter file Datei ein UTF-8 Unicode text. Also hat er das utf-8 doch angenommen in der Console.

    HILFÄÄÄÄÄ
    Geändert von Mathew73 (29-12-2005 um 23:12 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.12.2002
    Ort
    Matrix
    Beiträge
    194
    schalt mal das terminal mit unicode_start in unicode. oder starte ein uxterm und sieh dir den output an.


    -j

  6. #6
    Registrierter Benutzer
    Registriert seit
    22.11.2005
    Beiträge
    21
    Hi,

    ich musste beim mysql Server nicht nur den Server auf utf-8 umstellen, sondern auch die Clientverbindungen

    OK, Console funktioniert. Ein Problem gelöst, wieder zwei neue Probleme.

    Ersten muss ich die Anzahl der Zeichen prüfen und obwohl er 8 Zeichen auf der Console anzeigt, gibt er bei wc -c an, dass es 9 Zeichen sind, wenn ein Sonderzeichen im Text vorhanden ist :-(

    Nun habe ich alles auf uft-8 und der Epson Bondrucker druckt bei Sonderzeichen und Umlauten nur durcheinander. Muss ich den auch auf utf-8 umstellen bzw. ich sehe nirgendwo eine Option den auf utf-8 umzustellen :-(

    Gruß und Danke

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.06.2005
    Beiträge
    155
    Zitat Zitat von Mathew73
    Ersten muss ich die Anzahl der Zeichen prüfen und obwohl er 8 Zeichen auf der Console anzeigt, gibt er bei wc -c an, dass es 9 Zeichen sind, wenn ein Sonderzeichen im Text vorhanden ist :-(
    probier mal
    Code:
    wc -m
    wc --char
    religion is a virus from outer space

  8. #8
    Registrierter Benutzer
    Registriert seit
    22.11.2005
    Beiträge
    21
    *froi* ein Problem weniger ohne das ein neues Problem auftaucht

    hmmm, jetzt wo man es sieht ist es auch einfach. Ich nutzte nur -c für Zeichen und -l für Lines. Das man dann -m nehmen sollte ist in der Anleitung ersichtlich

    Ich war schon dabei if-Anweisungen zu schreiben um die Sonderzeichen zu suchen und dann von wc -c ein Zeichen abzuziehen

    Dankääää

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •