Ich habe eine Datenbanktabelle in MySQL mit einem Feld varchar(50)-utf8_general_ci und mit text-utf8_general_ci angelegt.
Ich greife auf die Datenbank mit ZEOS-Komponenten zu.
Bei dem Feld mit "varchar" kommen die Umlaute richtig, bei dem Feld mit "text" ist das nicht der Fall.
"SET CHARACTER SET `utf8`;" und "SET NAMES "utf8" habe ich vorher gesendet.
In der Datenbank steht z.b. 'ABC äöü'.
Ein
Code: Alles auswählen
for i:=1 to length(s) do writeln(i:1,s[i]:3,ord(s[i]):5);
gibt mir folgendes aus:
Feld vom Typ varchar (ftString) =richtig:
Code: Alles auswählen
ABC äöü
1 A 65
2 B 66
3 C 67
4 32
5 ├ 195
6 ñ 164
7 ├ 195
8 Â 182
9 ├ 195
10 ╝ 188
Feld vom Typ "text" (ftMemo) = falsch:
Code: Alles auswählen
ABC ???
1 ' 39
2 A 65
3 B 66
4 C 67
5 32
6 õ 228
7 ÷ 246
8 ³ 252
Da ich vorher nicht weiß, wie groß die Datenmengen in dem Feld werden können, kann ich nicht VarChar verwenden, bin also auf Text (oder ähnlichem) angewiesen.
Auch der Versuch das mit AnsiToUtf8() umwandeln zu wollen, schlägt fehl.
Hat jemand Erfahrungen, wie ich die Umlaute auch aus einem Feld vom Typ Text richtig bekomme?