mixmastertobsi: UTF8 Umlaute Problem

Hallo,

ich möchte mich JS eine CSV exportieren. Problem ist, dass die Umlaute nicht korrekt dargestellt werden, wenn die CSV mit EXCEL geöffent wird.
Wenn ich mir die Datei im Texteditor anschaue, ist alles OK...

Wer hat einen Tipp...

data = "test;€äöü;"

location.href='data:text/csv;charset=UTF-8,' + encodeURIComponent(data);

  1. Tach!

    ich möchte mich JS eine CSV exportieren. Problem ist, dass die Umlaute nicht korrekt dargestellt werden, wenn die CSV mit EXCEL geöffent wird.

    Wie sehen denn die kaputten Zeichen aus?

    Wenn ich mir die Datei im Texteditor anschaue, ist alles OK...

    OK ist relativ. Welche Kodierung hast du denn beim Erzeugen der Datei verwendet?

    data = "test;€äöü;"
    location.href='data:text/csv;charset=UTF-8,' + encodeURIComponent(data);

    Du sagt, das sei UTF-8. Stimmt das denn?

    dedlfix.

    1. Hallo,

      wie folgt

      € -> €
      ä -> ä

      Ja - bei mir läuft eigentlich alles UTF-8

      1. Tach!

        € -> €
        ä -> ä

        UTF8 als ISO-8859-1 interpretiert (beispielsweise). Oder vielleicht doppelte UTF-8-Kodierung. Vielleicht ist das auch ein Problem mit Excel. Nach meinen Erfahrungen versucht das zu raten und will keine Hinweise haben, welche Kodierung nun vorliegt.

        dedlfix.

        1. Hi,

          Vielleicht ist das auch ein Problem mit Excel.

          Das halte ich für die wahrscheinlichste Ursache.

          Nach meinen Erfahrungen versucht das zu raten und will keine Hinweise haben, welche Kodierung nun vorliegt.

          Es *hat* hier keinen Hinweis, wenn es eine bloße Textdatei vorgesetzt bekommt – der Hinweis, dass es sich bei den Daten um UTF-8 kodierte handelt, wird ja bloß beim *Download* der Data-URI gegeben, und ist damit in erster Linie für den Browser interessant; nachdem dieser die Daten per „Speichern unter …“ im Dateisystem abgelegt hat, ist diese Info vermutlich verloren.

          Wenn der Texteditor die Daten korrekt anzeigt – dann hat dieser vermutlich „geraten“; was Excel aber nicht macht, sondern statt zu raten einfach von einer Default-Kodierung (vermutlich WINDOWS-1252) ausgeht.

          Die Ausgabe einer BOM zu Beginn der Daten löst dieses Problem nach meiner Erfahrung. (Zumindest für „Windows-Excel“, die Mac-Version scheint dann auch wieder bockig zu sein, siehe http://stackoverflow.com/questions/6588068/which-encoding-opens-csv-files-correctly-with-excel-on-both-mac-and-windows.)

          MfG ChrisB

          --
          Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
          1. Tach!

            Nach meinen Erfahrungen versucht das zu raten und will keine Hinweise haben, welche Kodierung nun vorliegt.
            Es *hat* hier keinen Hinweis, wenn es eine bloße Textdatei vorgesetzt bekommt – der Hinweis, dass es sich bei den Daten um UTF-8 kodierte handelt, wird ja bloß beim *Download* der Data-URI gegeben, und ist damit in erster Linie für den Browser interessant; nachdem dieser die Daten per „Speichern unter …“ im Dateisystem abgelegt hat, ist diese Info vermutlich verloren.

            Ja, ich meinte das eher so wie es in ordentlichen Texteditoren gelöst ist, dass man beim Öffnen die Zeichenkodierung angeben oder sie auch nach dem Öffnen umstellen kann (in dem Sinne, dass der Editor den Inhalt gemäß der angegebenen Kodierung neu interpretiert).

            dedlfix.

        2. Hallo und danke!

          Egal in was ich es ändere - es wird immer falsch geöffnet.

          <html>
          <head>
          <script type="text/javascript">
          var data = "äöü";
          location.href='data:text/csv;charset=ISO-8859-2,' + encodeURIComponent(data);
          </script>
          </head>
          <body>
          </body>
          </html>

          <html>
          <head>
          <script type="text/javascript">
          var data = "äöü";
          location.href='data:text/csv;charset=UTF-8,' + encodeURIComponent(data);
          </script>
          </head>
          <body>
          </body>
          </html>

          1. Om nah hoo pez nyeetz, mixmastertobsi!

            Egal in was ich es ändere - es wird immer falsch geöffnet.

            Das kann sein. Aber: Nur weil du auf eine Wasserflasche „Rotwein“ schreibst, wird aus dem Wasser kein Wein. Es gab mal einen, der konnte das.

            Du musst also erst einmal die Kodierung ermitteln, in der der Text vorliegt. Du könntest dazu die Datei etwa in Notepad++ öffnen und als UTF-8 abspeichern. Dann steht auf der Wasserflasche „Wasser“ drauf.

            Matthias

            --
            Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Deut und Deuterium.

            1. Hallo,

              Es gab mal einen, der konnte das.

              Es steht geschrieben, dass es mal einen gab, der das konnte...

              Gruß
              Kalk

              1. Hallo,

                Es gab mal einen, der konnte das.

                Es steht geschrieben, dass es mal einen gab, der das konnte...

                Gruß
                Kalk

                Hallo,

                also der Text ist UTF-8 - was mache ich falsch?

                1. Hallo,

                  also der Text ist UTF-8 - was mache ich falsch?

                  Hast du es mal LibreOffice Calc versucht? Vielleicht kommt man damit dem Problem bei.

                  Gruß
                  Kalk

            2. Hallo,

              Nur weil du auf eine Wasserflasche „Rotwein“ schreibst, wird aus dem Wasser kein Wein. Es gab mal einen, der konnte das.

              "And then, one Thursday, nearly two thousand years after a man had been nailed to a tree for saying how great it would be to be nice to people for a change, ..."
                 (Douglas Adams in "The Hitchhiker's Guide To The Galaxy")

              Du musst also erst einmal die Kodierung ermitteln, in der der Text vorliegt. Du könntest dazu die Datei etwa in Notepad++ öffnen und als UTF-8 abspeichern. Dann steht auf der Wasserflasche „Wasser“ drauf.

              Ja, aber "Premium-Tafelwasser".
              Beim Speichern als ASCII oder ISO-Dingsbums wäre es destilliertes Wasser.

              Ciao,
               Martin

              --
              Ein guter Lehrer muss seinen Schülern beibringen können,
              eine Frage so zu stellen, dass auch der Lehrer lernen muss,
              um die Frage beantworten zu können.
                (Hesiod, griech. Philosoph, um 700 v.Chr.)
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. hi,

    ich möchte mich JS eine CSV exportieren. Problem ist, dass die Umlaute nicht korrekt dargestellt werden, wenn die CSV mit EXCEL geöffent wird.

    Beachte den Öffnen-Dialog, da musst Du eine Auswahl treffen bei Dateiursprung:

    Dialog

    MfG