utf8 kodierung erzeugt ? in der gespeicherten datei

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

  • utf8 kodierung erzeugt ? in der gespeicherten datei

    Hallo zusammen,

    folgendes Problem. Ich will eine Datei auslesen und die Daten in eine
    andere Datei schreiben. Soweit so gut. Nur muss das neu erzeugte File utf-8
    abgespeichert werden. Es genügt nicht die Daten im File utf-8 zu codieren.

    Hierzu die Zeile
    fwrite($fp2, pack("C*",0xef,0xbb,0xbf));
    Diese bewirkt das die Datei in UTF-8 gespeichert wird
    ABER: diese Zeile erzeugt auch ein ? am Anfang jedes Datensatzes

    Frage: Wieso kommt diese Fragezeichen zustande und wie kann ich es entfernen
    ohne die Datei nochmals zu öffnen.

    Danke

    Sun


    folgendes Script:
    <?php
    // Datei zum Lesen öffnen
    $handle = fopen ("test.csv","r");


    while (($data = fgetcsv($handle, 1000)) !== FALSE)
    {
    // Daten werden aus der Datei in ein Array $data gelesen

    // Felder im Array $data werden gezählt
    $num = count ($data);

    echo "<p> $num fields in line $row: <br>\n";


    // for-Schleife um Felder des Arrays auszugeben
    for ($i=0; $i < $num; $i++)
    {
    $feed = utf8_encode($data[$i]); }
    echo $feed."\n\r";

    $fp2 = fopen("test_1.csv","a");

    //Kodierung in UTF-8
    fwrite($fp2, pack("C*",0xef,0xbb,0xbf));
    fputs($fp2, $feed."\n");
    fclose($fp2);
    }

    fclose ($handle);
    ?>

  • #2
    Re: utf8 kodierung erzeugt ? in der gespeicherten datei

    Original geschrieben von damaszener
    Nur muss das neu erzeugte File utf-8 abgespeichert werden. Es genügt nicht die Daten im File utf-8 zu codieren.
    Meinst du mit dieser verqueren Formulierung, dass du eine BOM ins File schreiben willst?
    Hierzu die Zeile
    fwrite($fp2, pack("C*",0xef,0xbb,0xbf));
    Diese bewirkt das die Datei in UTF-8 gespeichert wird
    Ja, du meinst, dass du eine BOM ins File schreiben willst. Du weisst offenbar nur noch nicht, was es bedeutet :-)

    Informiere dich über die BOM, und vor allem auch darüber, wo sie zu stehen hat.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ok, jetzt meine Frage wo muss sie stehen? Habe bis jetzt diese Problem nicht gehabt,

      Danke

      Kommentar


      • #4
        Einmal am Anfang der Datei - und nicht vor jeder Zeile.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          hallo und danke,

          hätte ich auch selbst finden können. Nach einigen Versuchen hat es geklappt!

          Danke

          Kommentar

          Lädt...
          X