Marcel: Excel Tabelle mit russischem Text in MySQL importieren

Hallo,

wie kann ich eine Excel-Tabelle mit russischem Text in eine .csv Datei speichern ohne das die kyrillischen Zeichen verloren gehen?

Die Daten sollen später in eine MySQL Datenbank importiert werden.

Mit den Sprachen Deutsch, Englisch und Tschechisch gab es bisher keine Probleme aber bei der russischen Sprache bekomme ich in der csv Datei nur ???? angezeigt.

Oder gibt es einen anderen Web als über .csv?

Hat jemand einen Tipp für mich?

Danke + Gruß

Marcel

  1. echo $begrüßung;

    wie kann ich eine Excel-Tabelle mit russischem Text in eine .csv Datei speichern ohne das die kyrillischen Zeichen verloren gehen?
    Die Daten sollen später in eine MySQL Datenbank importiert werden.

    Finde zunächst heraus, welche Kodierung verwendet wurde und gibt diese dann beim Import an.
    Wenn du beim Export nicht explizit eine Kodierung einstellen kannst, kannst du versuchen, sie wie folgt zu ermitteln. Öffne die exportierte Datei in einem Browser (ggf. vorher nach .txt umbenennen). Wähle dann im Menü Ansicht -> (Zeichen-)Kodierung ein paar in Frage kommende aus (ISO 8859-5, KOI8-R (Russisch), Windows-1251, UTF-8). Wenn die Zeichen richtig dargestellt werden, liegt höchstwahrscheinlich diese Kodierung vor.

    Mit den Sprachen Deutsch, Englisch und Tschechisch gab es bisher keine Probleme [...]

    Bist du sicher, dass Tschechisch funktioniert hat? Was ist mit Zeichen wie ř, ě und ů? Die sind in den hierzulande üblichen Zeichensätzen nicht enthalten.

    echo "$verabschiedung $name";

    1. echo $begrüßung;

      Finde zunächst heraus, welche Kodierung verwendet wurde und gibt diese dann beim Import an.
      Wenn du beim Export nicht explizit eine Kodierung einstellen kannst, kannst du versuchen, sie wie folgt zu ermitteln. Öffne die exportierte Datei in einem Browser (ggf. vorher nach .txt umbenennen). Wähle dann im Menü Ansicht -> (Zeichen-)Kodierung ein paar in Frage kommende aus (ISO 8859-5, KOI8-R (Russisch), Windows-1251, UTF-8). Wenn die Zeichen richtig dargestellt werden, liegt höchstwahrscheinlich diese Kodierung vor.

      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.
      Aus Excel  heraus habe ich aber keine andere Möglichkeit die Datei im .csv Format zu speichern. Man kann keine Zeichnkodierung einstellen. In Excel selbst werden die russischen Zeichen korrekt dargestellt. Wenn ich sie allerdings als txt. speichere, dann werden die Zeichen in der .txt Datei und im Browser korrekt dargestellt. Die Zeichenkodierung in diesem Fall ist UTF-16.
      Jetzt muss ich nur noch sehen wie ich die .txt Datei in die Datenbank bekomme und wie das ganze dann auf der Website dargestellt wird. Die ist nämlich utf-8 kodiert.

      Bist du sicher, dass Tschechisch funktioniert hat? Was ist mit Zeichen wie ř, ě und ů? Die sind in den hierzulande üblichen Zeichensätzen nicht enthalten.

      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.

      Ich probiere jetzt erstmal zu importieren, vielleicht muss ich mich dann dazu noch mal hier melden.

      Vorerst schon mal besten Dank für die Tipps!

      Gruß Marcel

      1. 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";