Hallo meine Lieben,
verzweifle hier ein bisschen. Habe eine CSV-Datei mit Kundendaten, diese sind IMHO in utf8 kodiert, meine locales auch:
>locale
liefert:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
usw...
>file Kunden.csv
liefert:
Kunden.csv: UTF-8 Unicode text, with very long lines
Wenn ich Daten in via Lazarus (Zeos) eingebe werden alle Umlaute richtig kodiert und dargestellt. Wenn ich aber die Datei Kunden.csv in Mysql importiere mittels:
load data infile '/pfadzudaten/test.csv' into table kunden fields terminated by ',' lines terminated by '\n';
Dann bekomme ich die Umlaute falsch kodiert (ü ist z.B.: ü)
Hat jemand eine Idee was da schief läuft?
So sieht eine Zeile im File beispielsweise aus.
ALW,Herr,,Alwang,Jürgen,,Ziegenstr. 29,90482,Nürnberg,0911-541387,,,,,,,Simmelsdorferstr. 8,,,Nürnberg-Laufamholz,,08/99: Anfrage Pflege,WÜ,12.09.2002,
CSV und Umlaute [GELÖST]
-
- Beiträge: 65
- Registriert: Mi 27. Feb 2013, 18:24
- OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
- CPU-Target: 32Bit
CSV und Umlaute [GELÖST]
Zuletzt geändert von paulderfinne am So 28. Dez 2014, 18:59, insgesamt 1-mal geändert.
-
- Beiträge: 6904
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: CSV und Umlaute
Irgendwo bei deinem Quelltext muss ein UTF8toSys oder SystoUTF8 rein.
Bei folgenden Code wird auch ein "ü" anstelle eines "ü" erzeugt.
Bei folgenden Code wird auch ein "ü" anstelle eines "ü" erzeugt.
Code: Alles auswählen
AZipper.Filename := 'ööü.zip';
// AZipper.Filename := UTF8toSys('ööü.zip');
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: CSV und Umlaute
Die Datei geht gar nicht durch das Programm sondern direkt in die MySQL-Datenbank.Mathias hat geschrieben:Irgendwo bei deinem Quelltext muss ein UTF8toSys oder SystoUTF8 rein.
Schon einmal daran gedacht, MySQL mitzuteilen, welcher Zeichensatz verwendet werden soll?paulderfinne hat geschrieben:Wenn ich aber die Datei Kunden.csv in Mysql importiere mittels:
load data infile '/pfadzudaten/test.csv' into table kunden fields terminated by ',' lines terminated by '\n';
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: CSV und Umlaute
Socke hat recht.
Ich mache MySQL "Zeug" meistens mit phpMyAdmin, da erspart man sich die Kommandozeilenoptionen.
Ich mache MySQL "Zeug" meistens mit phpMyAdmin, da erspart man sich die Kommandozeilenoptionen.
-
- Beiträge: 65
- Registriert: Mi 27. Feb 2013, 18:24
- OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
- CPU-Target: 32Bit
Re: CSV und Umlaute
Danke Socke, das war der richtige Tipp. Offenbar muss man der kleinen My explizit nochmal mitteiln, dass es sich um utf8-kodierte Zeilen handelt. Mein Import-Statment lautet also: (Für alle die das gleiche Problem haben):Socke hat geschrieben: Schon einmal daran gedacht, MySQL mitzuteilen, welcher Zeichensatz verwendet werden soll?
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
mysql> load data infile '/pathtothefile/Kunden.csv' into table kunden character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\n';
Vielen Dank euch allen. Ihr seid immer soo lib und nehmt euch Zeit.
@theo: Vielen Dank auch dir. Ich habe eher selten mit Sowas zu tun und habe keine Lust auf alle möglichen GUIs. Bin schon etwas in die Jahre gekommen und als "Consolero" aufgewachsen.