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.
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.
Comment