CSV und Sonderzeichen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSV und Sonderzeichen

    Hallo zusammen,

    ich erstelle mittels einer foreach-Schleife eine csv-Datei.

    Wenn ich diese csv jetzt importieren will, werden die dt. Umlaute falsch dargestellt (ä => R\344

    Wie kann ich das umgehen?

    Danke!

    strauberry

  • #2
    Vor dem Eintragen in die csv ev htmlentities() über'n String laufen lassen ?

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Hm, naja, HTML-Entities in CSV ist nicht so das wahre. Meistens werden die CSV's ja mit Excel aufgemacht, und das macht da mit Sicherheit Müll. Entities sind schließlich nur für Browser...

      Schließt du denn deine Strings auch in " ein?

      Kommentar


      • #4
        Würde es in diesem Falle dann helfen eine Fkt wie utf8_encode() zu verwenden? Textdateien sollten doch, afaik, ASCII-kombatibel sein.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Ich frag mich, WO die Darstellung eigentlich so vermurkst ist. Liest dein Script die csv-Datei und gibt sie an den Browser aus oder schaust du mit einem Texteditor rein?

          Kommentar


          • #6
            Gute Frage, wo kommen die Daten her?

            Kommentar


            • #7
              Hi,

              habe es schon auf verschiedenen Wegen versucht:

              - In den Editor eingegeben, als csv gespeichert (Mac OS X, SubEthaEdit, NeoOffice)
              - Mittels normalem Array und fopen (hier erkennt er nicht mal den /n)

              Beim Editor habe ich die Einstellung gefunden "Zeilenende: LF, CR, CRLF usw. sowie Codierung: ASCII (ohne Verluste), ASCII (Westeuropäisch) usw. Beim Editor könnte es ja noch an der Einstellung liegen, aber wenn ich mit php eine Datei schreibe, wie kann ich das dort einstellen?

              PHP-Code:
                 $test = array('täst;tüst;töst','hallo;hallo;hallo');
                 
              $Ausgabe implode("\n"$test);
                 
                 
              $file fopen("test.csv","w");
                 
              fputs($file$Ausgabe);
                 
              fclose($file); 
              Ergibt im Editor betrachtet: t\344st;t\374st;t\366st\nhallo;hallo;hallo

              DANKE!!

              strauberry

              Kommentar


              • #8
                Vielleicht macht dein PHP-Editor Murks?

                Schreib doch obigen Schnipsel mal mit deinem PHP-Editor, speichere, lass es einmal laufen und dann lade das Script und die erzeugte CSV hoch.

                Kommentar


                • #9
                  Das Script...
                  Angehängte Dateien

                  Kommentar


                  • #10
                    Und die CSV-Datei dazu... (kann man mehrere Anhänge gleichzeitig senden?)
                    Angehängte Dateien

                    Kommentar


                    • #11
                      Dachte ichs mir doch! So sieht dein Script aus, wenn ich es öffne:
                      PHP-Code:
                      <?

                         $test = array('t\344st;t\374st;t\366st','hallo;hallo;hallo');
                         $Ausgabe = implode("\\n", $test);
                         
                         $file = fopen("test.csv","w");
                         fputs($file, $Ausgabe);
                         fclose($file);
                          
                         
                      ?>
                      Somit wundert es nicht, dass in CSV-File auch dieser Salat steht.

                      Mit welchem Editor programmierst du denn und wie ist der ein- oder verstellt?

                      Kommentar


                      • #12
                        Das Teil heißt SubEthaEdit mit dieser Konfig:

                        Kodierung Westeuropäisch (ASCII)
                        Zeilenende Unix (LF)

                        DANKE!

                        Kommentar


                        • #13
                          Westeuropäisches ASCII heißt nicht unbedingt, dass es Umlaute kennt. Versuchs mal mit Iso Latin 1.

                          Kommentar


                          • #14
                            Ergibt das hier: tŠst;tŸst;tšst
                            hallo;hallo;hallo

                            Und selbst wenn es mit dem Editor dann klappt: wenn ich die Daten aus der DB auslese, wird es auch zerhauen... so ne

                            Kommentar

                            Lädt...
                            X