Supportnet / Forum / Datenbanken
CSV Datei mit Umlauten in UTF8 Tabelle laden
Frage
Hi,
ich versuch gerad eine CSV-Datei , die Daten mit Umlauten enthält, in eine utf8 Tabelle zu importieren (per phpmyadmin).
Leider fehlt bei den importierten Daten jeweils der Text/ Buchstaben nach den Umlauten.
Die Datenbank und die Tabellen laufen auf utf8.
[b]--> Wieo werden die Umlaute trotz einer utf8 Tabelle nicht wiedergegeben bzw. warum fehlt der Text nach dem Umlaut?[/b]
Vielen vielen Dank für Eure Tipps und Erfahrung
Gruss Mel
Antwort 1 von Supermax
Es muß dafür sowohl die Datenbank als auch PHP für UTF8 konfiguriert sein; in der Regel bedeutet das, daß die PHP-Erweiterung für Multibyte-zeichen (mbstring) installiert und konfiguriert sein muß.
Eine einfache Lösung wäre vermutlich, die CSV-Datei in einen Texteditor (sehr gut geeignet z.B. die Freeware PSPad oder auch UltraEdit32) zu laden und explizit als UTF-8 abzuspeichern. Dabei allerdings darauf achten, daß keine am Anfang der Datei kein BOM (Byte Order Marker) geschrieben wird. Das ist eine Kombination aus 3 Bytes die angibt, in welchem Format die Unicode-Daten in der Datei gespeichert sind (UTF8, UTF16, ...). mySQL kann mit diesen 3 Bytes in der Regel nichts anfangen und gibt einen Syntaxfehler aus.
Eine einfache Lösung wäre vermutlich, die CSV-Datei in einen Texteditor (sehr gut geeignet z.B. die Freeware PSPad oder auch UltraEdit32) zu laden und explizit als UTF-8 abzuspeichern. Dabei allerdings darauf achten, daß keine am Anfang der Datei kein BOM (Byte Order Marker) geschrieben wird. Das ist eine Kombination aus 3 Bytes die angibt, in welchem Format die Unicode-Daten in der Datei gespeichert sind (UTF8, UTF16, ...). mySQL kann mit diesen 3 Bytes in der Regel nichts anfangen und gibt einen Syntaxfehler aus.
Antwort 2 von Mel
Supermax:
Genau, das war der Fall.
Erstens hat das Programm nicht automatisch in utf-8 gespeichert und zweitens hatte ich wohl am Anfang der Datei diesen "BOM".
Mit deinem Hinweis klappt der Import jetzt super.
Einen groooossen Dank an Dich
Gruss Mel
Zitat:
Eine einfache Lösung wäre vermutlich, die CSV-Datei in einen Texteditor (sehr gut geeignet z.B. die Freeware PSPad oder auch UltraEdit32) zu laden und explizit als UTF-8 abzuspeichern. Dabei allerdings darauf achten, daß keine am Anfang der Datei kein BOM (Byte Order Marker) geschrieben wird. Das ist eine Kombination aus 3 Bytes die angibt, in welchem Format die Unicode-Daten in der Datei gespeichert sind (UTF8, UTF16, ...). mySQL kann mit diesen 3 Bytes in der Regel nichts anfangen und gibt einen Syntaxfehler aus.
Eine einfache Lösung wäre vermutlich, die CSV-Datei in einen Texteditor (sehr gut geeignet z.B. die Freeware PSPad oder auch UltraEdit32) zu laden und explizit als UTF-8 abzuspeichern. Dabei allerdings darauf achten, daß keine am Anfang der Datei kein BOM (Byte Order Marker) geschrieben wird. Das ist eine Kombination aus 3 Bytes die angibt, in welchem Format die Unicode-Daten in der Datei gespeichert sind (UTF8, UTF16, ...). mySQL kann mit diesen 3 Bytes in der Regel nichts anfangen und gibt einen Syntaxfehler aus.
Genau, das war der Fall.
Erstens hat das Programm nicht automatisch in utf-8 gespeichert und zweitens hatte ich wohl am Anfang der Datei diesen "BOM".
Mit deinem Hinweis klappt der Import jetzt super.
Einen groooossen Dank an Dich
Gruss Mel