MySQL und Unicode [wartet weiter auf Lösung]

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antrepolit
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]

Beitrag von Antrepolit »

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ß
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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

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.

Antrepolit
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

Beitrag von Antrepolit »

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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

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?

Antrepolit
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

Beitrag von Antrepolit »

Man, ist der Theo schnell.

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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

Antrepolit hat geschrieben:Man, ist der Theo schnell.

Gelle?

Hast du das auch der TMySQL50Connection im Property Charset verclickert?
Das: "utf8" so da reinschreiben.

Antrepolit
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

Beitrag von Antrepolit »

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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

Auch ohne asWideString?

Antrepolit
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

Beitrag von Antrepolit »

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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

Dann musst du auf einen Datenbank Spezialisten warten. Ich habe davon nämlich keine Ahnung. ;-)

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

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?

Antrepolit
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

Beitrag von Antrepolit »

Ich arbeite mit Windows 7 und MySQL über XAMPP.

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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

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)

Antrepolit
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

Beitrag von Antrepolit »

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

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: MySQL und Unicode

Beitrag von theo »

Hast du auch den FPC 2.4.0 ?
Keine Ahnung ob da was verbessert wurde, aber es könnte ja sein...

Antworten