Sven Rautenberg: Falsche Umlaute beim Import von txt Datei in Mysql DB

Beitrag lesen

Moin!

Was ich bisher probiert habe:
Import der Liste als csv Datei (geht komplett schief)
Seitencodierung des Import-PHP auf utf-8 umstellen
Txt Datei in verschiedenen Codierungsformaten abspeichern (Westeuropäisch, Utf ..)

Es ist richtig, dass die Zeichencodierung hier das Problem ist.

Es ist aber irrelevant, welche Seitencodierung das Import-PHP-Skript an den Browser ausgibt. Wichtig ist, dass deine Datenbank die richtige Zeichencodierung erfährt - oder dass das auslesende Skript zumindest die gleiche Zeichencodierung benutzt (und an den Browser sendet), wie das schreibende/importierende.

UTF-8 ist ja generell eine gute Lösung für Textspeicherungsprobleme. Das bedeutet dann, dass sämtliche Textein- und -ausgaben auf UTF-8 basieren müssen. MySQL kann übrigens in allen Versionen UTF-8-Texte speichern und wieder ausgeben, auch ohne über diese Tatsache informiert zu sein. Aber ab Version 4.1 kann MySQL UTF-8 auch "verstehen" und erkennt, welche Bytes zusammengehören und ein Zeichen bilden - und kann damit auch angenehmer danach suchen und Stringfunktionen drauf anwenden.

Wenn dein Excel also was anderes als UTF-8 ausgibt, und alle deine PHP-Skripte dem Browser was anderes als UTF-8 als Zeichencodierung angeben (nicht nur das Import-Skript, sondern insbesondere alle, die die DB-Inhalte wieder ausgeben), hast du viele Möglichkeiten, es "zu versauen".

- Sven Rautenberg

--
My sssignature, my preciousssss!