Seite 1 von 1
thai speichern -> Fragezeichen
Verfasst: Fr, 01.06.2007 16:11
von CImbusch
Hallo zusammen,
ich benutze oobase zusammen mit mysql und bin soweit auch ganz zufrieden damit. Allerdings habe ich auch ein Problem, sonst würde ich wohl auch nicht hier schreiben
Ich versuche oobase z.Zt. irgendwie beizubringen thai Schriftzeichen in der Datenbank zu speichern. Es passiert folgendes: in Windows wechsle ich in den thai Eingabemodus und fülle ein paar Felder in einem Formular in oobase aus. Alles wird richtig angezeigt. Speichere ich den Datensatz, erscheinen anstatt der richtigen Zeichen nur noch Fragezeichen.
Was noch merkwürdiger ist: ich habe z.B. mit Navicat ein paar Felder mit thai Zeichen ausgefüllt und die werden dann sowohl von Navicat als auch von oobase richtig angezeigt. Also nur das Speichern mit etwas exotischeren Zeichen scheint nicht zu funktionieren.
Übrigens benutze ich jdbc, um mich mit mysql zu verbinden.
Fall jemand eine Idee hat, würde ich mich sehr freuen.
Charlie
Verfasst: Sa, 02.06.2007 10:51
von Barlee
Hallo Cimbusch,
ist mySQL für die Benutzung von utf8 konfiguriert?
/etc/my.cfg
[client]
default-character-set=utf8
[mysqld]
init-connect=SET NAMES 'utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
default-character-set=utf8
---------------------
Probiere in Base auch mal folgende Einstellungen:
-rechter Mausklick auf die mySQL Tabellen / Datenbank / Eigenschaften / Reiter "zusätzliche Einstellungen" >> utf8 auswählen
Gruß Barlee
Verfasst: Sa, 02.06.2007 20:07
von CImbusch
Hallo Barlee,
danke erstmal für deine Antwort!
> ist mySQL für die Benutzung von utf8 konfiguriert?
War es anscheinend nicht. Ich habe die zusätzlichen Optionen, die du gepostest hast in die config übernommen und den mysql Server neu gestartet.
In oobase ist
Bearbeiten -> Datenbank -> Eigenschaften -> Zeichensatz
auf "Unicode (UTF-8)" gestellt.
Allerdings kann ich mich jetzt nicht mehr mit der Datenbank verbinden.
oobase meldet folgenden Fehler:
"Die Verbindung zur Datenquelle "TSC Datenbank" konnte nicht hergestellt werden."
und
"SQL-Status: S1000
Unknown initial character set index '192' received from server. Initial client character set can be forced via the 'characterEncoding' property."
Dann habe ich mich gefragt, wo ich 'characterEncoding' sonst noch finden könnte, weil ich den Zeichensatz ja schon eingestellt habe.
Wodran kanns jetzt noch liegen?
Gruß,
Charlie
Verfasst: Sa, 02.06.2007 20:30
von Barlee
Hallo Charlie,
schau mal in die /mysql/charsets/Index.xml
Ist dort UTF8 unter charset Nummer '192' gelistet?
Du könntest noch folgendes probieren:
useUnicode=true und characterEncoding=UTF-8 an den JDBC-Verbindungsstring anhängen ... (evtl.auch einmal einzeln)
JDBC / MySQL updaten bzw. mit einer anderen Version testen, ob das Problem weiterhin besteht
Gruß Barlee
Verfasst: So, 03.06.2007 13:12
von CImbusch
Danke erstmal für die Antwort!
> schau mal in die /mysql/charsets/Index.xml
> Ist dort UTF8 unter charset Nummer '192' gelistet?
Nein, der Abschnitt, bei dem es um UTF8 geht sieht so aus:
<charset name="utf8">
<family>Unicode</family>
<description>UTF-8 Unicode</description>
<alias>utf-8</alias>
<collation name="utf8_general_ci" id="33">
<flag>primary</flag>
<flag>compiled</flag>
</collation>
<collation name="utf8_bin" id="83">
<flag>binary</flag>
<flag>compiled</flag>
</collation>
</charset>
"192" habe ich in Index.xml gar nicht gefunden.
> useUnicode=true und characterEncoding=UTF-8 an den JDBC-Verbindungsstring anhängen
Hab ich gemacht und mit characterEncoding=UTF-8 konnte er sich dann tatsächlich testweise verbinden. Als ich dann allerdings auf eine Tabelle geklickt habe, ging dann gar nichts mehr, und nach einiger Zeit schmierte dann oobase ab.
> JDBC / MySQL updaten bzw. mit einer anderen Version testen, ob das Problem weiterhin besteht
Auch gemacht. Der ursprüngliche mysql Server läuft auf Debian stable und liefert mir über die Version "mysql Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2"
Ich hab einfach mal unter der lokalen windows Maschine mysql-5.0.41-win32 installiert, beim Setup unbedingt utf8 ausgewählt und siehe da es klappt mit oobase und jdbc auf Anhieb. Auch mit den gleichen Einstellungen. Das ist schön, aber irgendwie auch ärgerlich, da ich den mysql Server natürlich auf dem richtigen Server unter Linux laufen lassen will. Also scheints ja doch irgendwie an der Konfiguration oder der Software (serverseitig) zu liegen.
Gruß,
Charlie (noch schwer am überlegen)
Verfasst: So, 03.06.2007 13:49
von Barlee
Hallo Charlie
noch eine Idee:
Ergänze die Index.xml um diesen Eintrag:
<collation name="utf8_unicode_ci" id="192">
<flag>primary</flag>
<flag>compiled</flag>
</collation>
Versuche anschl. wieder mit den Ergänzungen am Verbindungsstring eine Verbindung herzustellen...
Gruß Barlee
Verfasst: So, 03.06.2007 15:53
von CImbusch
Hallo Barlee,
danke für deine Antwort! Ich hab die Index.xml um den einen zusätzlichen Eintrag erweitert, mysql neu gestartet, nochmals verbunden, mit dem gleichen Ergebniss, dass wenn ich mir ne Tabelle anschauen will oobase abschmiert.
Gruß,
Charlie
Verfasst: Mo, 04.06.2007 20:03
von Barlee
Hallo Charlie,
so recht Ideen habe ich ehrlichgesagt nicht mehr, glaube aber, dass es eine Kleinigkeit ist.
Was ich noch probieren würde:
[client]
default-character-set=utf8
nochmal auskommentieren und wieder mit dem Verbindungsstring experimentieren
Zum anderen einmal utf8_unicode_ci durch utf8_bin ersetzen (in der cfg und xml Datei) und erneut Dein Glück versuchen
...oder nochmals mit verschieden Zeichensatzeinstellungen in Base experimentieren
Gruß Barlee