thai speichern -> Fragezeichen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

CImbusch
Beiträge: 7
Registriert: Fr, 01.06.2007 16:00

thai speichern -> Fragezeichen

Beitrag 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
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Beitrag 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
CImbusch
Beiträge: 7
Registriert: Fr, 01.06.2007 16:00

Beitrag 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
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Beitrag 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
CImbusch
Beiträge: 7
Registriert: Fr, 01.06.2007 16:00

Beitrag 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)
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Beitrag 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
CImbusch
Beiträge: 7
Registriert: Fr, 01.06.2007 16:00

Beitrag 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
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Beitrag 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
Antworten