Announcement

Collapse
No announcement yet.

Problem beim Einfügen von Russischen Zeichen in UTF8 Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem beim Einfügen von Russischen Zeichen in UTF8 Datenbank

    Hallo,

    ich habe eine Datenbank mit dem Zeichensatz "UTF8". Nun habe ich mit einem Perlscript (UTF-8 Format) einen deutschen, chinesischen und einen russischen Text in die DB eingefügt.
    Ein CGI-Skript (generiert UTF-8 HTML Seite) durchsucht die DB nach einem von mir eingegebenen Zeichen (z.B. 一) und zeigt alle gefundenen Ergebnisse an. Das klappt wunderbar bei chinesisch und deutsch (mit Umlauten). Wenn ich aber nach dem russischen Text suche, dann wird kein Ergebnis zurückgeliefert.

    Zuerst vermutete ich, dass es daran liegt, dass es eine "UTF8" (statt einer "AL32UTF8") DB ist.

    Dann habe ich den russischen Text per INSERT (mit dem CGI-Skript und einem html-Formular) in die selbe Tabelle nochmal eingefügt und mir das Ergebnis mit "select rawtohex(text) from testtab" ausgeben lassen.
    Der vom CGI eingefügt String unterscheidet sich von dem vom Perlskript eingefügten String. (Kein wunder das der russische Text nicht gefunden wurde)

    Also muss irgendwas beim einfügen mit meinem Perlskript schiefgegangen sein. Das Perlskript ist UTF8, die Texte sind UTF8, das CGI-Skript ist UTF8. Ich kann mir nicht erklären was da schiefgelaufen ist.

    Hat einer von euch schonmal das Problem gehabt? (also das Oracle die eingefügten Daten irgendwie umkonvertiert).
    Gibt es irgendeine andere Möglichkeit russische Texte in eine Oracledatenbank einzufügen ohne dass sie zerstört werden?

    Vieleicht hab ich ja auch einfach nur was bei den ganzen Unicodezeichensätzen falsch gemacht... dann wunderts mich aber das es bei deutsch und chinesisch ohne Probleme funktioniert.

    ich hoffe ihr könnt mir helfen.

  • #2
    Hallo,

    welchen Zeichensatz benutz der Oracle Client. In der Regel kommt es auf diesen an, wie die DB dahinter die ankommenden Zeichen verarbeitet.

    Gruß Albernd

    Comment


    • #3
      Hallo albernd,

      danke für deine Antwort. Also der Oracleclient nutzt UTF-8 als Zeichensatz (ich habs nochmal überprüft) und die Daten liegen auch in UTF-8 vor (hab deren Hexwerte mit einer Unicodetabelle verglichen). Hab leider noch keine Lösung für mein Problem gefunden (und die Ideen gehen mir auch langsam aus ).

      gruß orauser

      Comment

      Working...
      X