dedlfix: Excel Tabelle mit russischem Text in MySQL importieren

Beitrag lesen

echo $begrüßung;

Wenn ich die Datei aus Excel heraus mit "Speichern unter / csv" speichere, diese Datei dann in .txt umbenenne und im Firefox öffne, dann ist unter "Ansicht / Zeichnkodierung" - Westlich ISO 1252 angehakt.

Wenn unter Windows-1252 kyrillische Zeichen angezeigt werden ist etwas kaputt, denn dieser Zeichensatz enthält keine kyrillischen Zeichen. Du darfst nicht einfach nur nachschauen, was angekreuzt ist, sondern du musst es umstellen, bis die Zeichen richtig angezeigt werden. Der Browser kann anhand der Bytefolge, die er vorgesetzt bekommt, nicht ermitteln, welche Kodierung vorliegt. Es gibt einige Spezialfälle, bei denen er annehmen kann, dass es sich um eine bestimmte Kodierung handelt, aber es ist technisch nicht möglich, das zweifelsfrei zu bestimmen.

Ja, mit der tschechischen Sprache bin ich genau so verfahren und da habe ich keine Klimmzüge machen müssen um die Excel Tabelle in die MySQL DB zu bekommen.

Wenn du dabei keine Kodierung angegeben hast, dann war es Zufall, dass dabei alles glatt ging.

Du musst übrigens auch dafür sorgen, dass die Felder der MySQL-Tabellen die Zeichen aufnehmen können. Wenn das Feld (ja, die einzelnen Felder! die Tabellen- oder Datenbank-Kodierungen interessieren dabei nicht) auf Latin1 steht, bekommst du da keine kyrillischen Zeichen rein. Empfehlenswert ist UTF-8, denn damit lassen sich praktisch alle Zeichen der Welt speichern.
Beachte weiterhin, dass MySQL bei der Datenein- und ausgabe von und zu einem Client die Kodierung der aktuellen Client-Verbindung verwendet. Wenn diese zu den Feldern unterschiedlich iat, nimmt es eine Umkodierung vor. Das kann dann nur funktionieren, wenn das Zeichen in der Zielkodierung darstellbar ist, sonst geht das Zeichen verloren, dargestellt durch ein Fragezeichen. Gegebenenfalls muss der Client sich eine Kodierung aushandeln, wenn die eingestellte Server-Default-Kodierung nicht verwendbar ist. Stichwort: SET NAMES ...

echo "$verabschiedung $name";