MySQL und Unicode [wartet weiter auf Lösung]
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
MySQL und Unicode [wartet weiter auf Lösung]
Ich möchte Cchinesische Schriftzeichen (UTF8) aus einer MySQL-DB auslesen.
Ich verwende in einem Form ein SQLQuery, SQLTransaction und SQLConnection.
Problem: Alle CHinesischen zeichen und Sonderzeichen werden als ? (ord 65) dargestellt.
Ich verwende SQLQuery1.Fields[2].AsString; zum Zuweisen an einen String.
Mit SQLQuery1.Fields[2].AsWideString; werden restlos alle zeichen als ? dargestellt.
Wo liegt mein Problem?
Gruß
Ich verwende in einem Form ein SQLQuery, SQLTransaction und SQLConnection.
Problem: Alle CHinesischen zeichen und Sonderzeichen werden als ? (ord 65) dargestellt.
Ich verwende SQLQuery1.Fields[2].AsString; zum Zuweisen an einen String.
Mit SQLQuery1.Fields[2].AsWideString; werden restlos alle zeichen als ? dargestellt.
Wo liegt mein Problem?
Gruß
Zuletzt geändert von Antrepolit am Mi 27. Jan 2010, 23:47, insgesamt 1-mal geändert.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Antrepolit hat geschrieben:Mit SQLQuery1.Fields[2].AsWideString; werden restlos alle zeichen als ? dargestellt.
Ich weiss es nicht im Detail, aber eines kann ich sagen:
UTF-8 kannst du nicht AsWideString auslesen. UTF-8 ist ein normaler String (8bit).
Ansonsten pfuscht da der WideString Manager rein und meint er müsse Latin1 nach UCS-2 umwandeln.
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: MySQL und Unicode
In der DB ist es UTF8 unicode ci. Im Backend der DB werden die Zeichen korrekt angezeigt.
Zuletzt geändert von Antrepolit am Mo 25. Jan 2010, 23:35, insgesamt 1-mal geändert.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Antrepolit hat geschrieben:Dann ist es kein UFT8, hatte das verwechselt, sorry. In der DB ist Unicode verwendet. Im Backend werden die Zeichen korrekt angezeigt.
Dann musst du die zum Anzeigen umwandeln mit UTF8Encode
EDIT: Ja was denn nu?
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: MySQL und Unicode
Man, ist der Theo schnell.
Hatte meinen vorherigen Post geändert.
Es ist UTF8 unicode ci in der DB.
Hatte meinen vorherigen Post geändert.
Es ist UTF8 unicode ci in der DB.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Antrepolit hat geschrieben:Man, ist der Theo schnell.
Gelle?
Hast du das auch der TMySQL50Connection im Property Charset verclickert?
Das: "utf8" so da reinschreiben.
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: MySQL und Unicode
Code: Alles auswählen
MySQLConnection1.Params.Values['Charset'] := 'utf8';
MySQLConnection1.CharSet := 'utf8';
Beides reingeholt. Auch ein UTF8encode brint leider nix. Die Strings haben immer nur ein Zeichen (ist auch immer nor ein Schriftzeichen) mit dem Wert 65 für ?.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Auch ohne asWideString?
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: MySQL und Unicode
theo hat geschrieben:Auch ohne asWideString?
Aber natürlich doch Ohne. Aber auch mit bleibt das Problem.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Dann musst du auf einen Datenbank Spezialisten warten. Ich habe davon nämlich keine Ahnung.
Re: MySQL und Unicode
Ich kann nur noch anfügen: Bei mir geht das z.B.
Diesen Text habe ich aus der MySQL DB in ein Memo gelesen:
丘丗Studierte Schulmusik
Die ersten zwei Zeichen sind Chinesisch.
Auf welchem System bist du?
Diesen Text habe ich aus der MySQL DB in ein Memo gelesen:
丘丗Studierte Schulmusik
Die ersten zwei Zeichen sind Chinesisch.
Auf welchem System bist du?
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: MySQL und Unicode
Ich arbeite mit Windows 7 und MySQL über XAMPP.
Könntest du mir deinen Code zeigen, und welche Einstellung hast du in deiner DB?
Könntest du mir deinen Code zeigen, und welche Einstellung hast du in deiner DB?
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Antrepolit hat geschrieben:Ich arbeite mit Windows 7 und MySQL über XAMPP.
Könntest du mir deinen Code zeigen, und welche Einstellung hast du in deiner DB?
Ich bin auf OpenSuSE.
Der Code ist denkbar einfach, habe nur charset auf der Connection eingestellt (utf8):
Code: Alles auswählen
SQLQuery1.SQL.Text:='SELECT * FROM KOMPONISTEN WHERE KO_NAME = '+QuotedStr('Ammann');
SQLQuery1.Open;
Memo1.lines.add(SQLQuery1.FieldByName('KO_VORNAME').AsString);
Memo1.lines.add(SQLQuery1.FieldByName('KO_BIOGRAPHIE').AsString);
SQLQuery1.Close;
In der DB ist die Tabelle auf utf8_general_ci
Kann dein Font denn das Chinesische Zeug überhaupt darstellen?
Übrigens: Lazarus 0.9.29 r23523M FPC 2.4.0 i386-linux-gtk 2 (beta)
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Re: MySQL und Unicode
theo hat geschrieben:
In der DB ist die Tabelle auf utf8_general_ci
Kann dein Font denn das Chinesische Zeug überhaupt darstellen?
Übrigens: Lazarus 0.9.29 r23523M FPC 2.4.0 i386-linux-gtk 2 (beta)
Ja, das war das erste, worum ich mich gekümmert habe. Simsun heißt die.
Aber da alle ? den wert 65 haben, muss es ein Umwandlungsfehler irgendwo sein.
Das mit dem Memo versuche ich heute nach der Arbeit mal.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
Re: MySQL und Unicode
Hast du auch den FPC 2.4.0 ?
Keine Ahnung ob da was verbessert wurde, aber es könnte ja sein...
Keine Ahnung ob da was verbessert wurde, aber es könnte ja sein...