Mario: Download von UTF-8 Dateien realisieren

Hallo,

ich erstelle in meinem PHP Skript einen UTF-8 String und möchte diesen danach downloaden. Das beides klappt auch. Allerdings werden beim Download alle UTF-8 Zeichen zerstört/verstümmelt (habe die Hexwerte verglichen).

Hier mal das Testskript:

$text="öäüÖÄÜßabc";  
  
header("Pragma: private");  
header("Expires: 0");  
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  
header("Content-Length: ".strlen($text));  
header('Content-Type: text/plain; charset=UTF-8');  
header('Content-Disposition: attachment; filename="test.txt"');  
header("Content-Transfer-Encoding: binary");  
header("Connection: close");  
  
echo $text;  
die();

Was mache ich falsch? Fehlt ein header oder ist einer falsch?

MFG
Mario

  1. Hallo,

    ich erstelle in meinem PHP Skript einen UTF-8 String und möchte diesen danach downloaden. Das beides klappt auch. Allerdings werden beim Download alle UTF-8 Zeichen zerstört/verstümmelt (habe die Hexwerte verglichen).

    $text="öäüÖÄÜßabc";

    header("Pragma: private");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Length: ".strlen($text));
    header('Content-Type: text/plain; charset=UTF-8');
    header('Content-Disposition: attachment; filename="test.txt"');
    header("Content-Transfer-Encoding: binary");
    header("Connection: close");

    echo $text;
    die();

      
    ich wundere mich über die Vielzahl von Headern. Wozu diese alle? Wozu das die();?  
      
    
    > Was mache ich falsch? Fehlt ein header oder ist einer falsch?  
      
    Nicht nachvollziehbar, wenn das Skript in UTF-8 abgespeichert ist.  
      
      
    Freundliche Grüße  
      
    Vinzenz
    
    1. ich wundere mich über die Vielzahl von Headern. Wozu diese alle? Wozu das die();?

      Was ich hier gepostet habe ist nur ein Teil des Skriptes, der relevante für dieses Problem, also störe dich nicht am die() ;)

      Nicht nachvollziehbar, wenn das Skript in UTF-8 abgespeichert ist.

      Ist es und dennoch existiert dieses Problem.

      1. Hallo Mario,

        Nicht nachvollziehbar, wenn das Skript in UTF-8 abgespeichert ist.
        Ist es und dennoch existiert dieses Problem.

        Nein, mit diesem Code ist dies nicht nachvollziehbar. Ich erhalte eine Datei mit der unveränderten Zeichenkette in UTF-8 (ohne BOM).

        Also machst Du irgendetwas falsch.

        Freundliche Grüße

        Vinzenz

  2. Hi!

    ich erstelle in meinem PHP Skript einen UTF-8 String und möchte diesen danach downloaden. Das beides klappt auch. Allerdings werden beim Download alle UTF-8 Zeichen zerstört/verstümmelt (habe die Hexwerte verglichen).
    Was mache ich falsch? Fehlt ein header oder ist einer falsch?

    Kann ich dir nicht sagen, weil du nicht konkret zeigst, welche Werte du vor dem Download und in der gespeicherten Datei hast, und wie du das prüfst (kann ja auch ein "Messfehler" vorliegen).

    Lo!

  3. Ehh Mario!
    Kannste Du verlinke aufe Datei?

    Wenns das ginge, koennte man sich mal anschauen, was da so kommt. Evtl. hilfts.

    --
    Vergesst Chuck Norris.
    Sponge Bob kann unter Wasser grillen!
  4. Hat sich erledigt, war ein Zeichen außerhalb von PHP was den Trouble verursacht hat. Danke für die Hilfe.

    MFG
    Mario