Ich glaube, dass viele Menschen bei der Verwendung von PHP auf verstümmelte generierte Dateien gestoßen sind, unabhängig davon, ob sie mit fwrite oder file_put_contents geschrieben wurden. Vielleicht versuchen Sie, das Problem zuerst durch Kodierung zu lösen, aber das Endergebnis ist oft nicht ideal, obwohl wir es auf UTF-8-Kodierung konvertiert haben...
Was ist also die Ursache? Es fehlt lediglich die Kopfstückliste (dies bezieht sich natürlich definitiv nicht auf die Js-Stückliste).
BOM
Da BOM erwähnt wird, wissen einige Studenten vielleicht nicht viel über diesen Kerl. Veteranen können es hier überspringen. Wenn Sie unter Windows ein Programm wie Notepad verwenden, um eine Textdatei im UTF-8-Format zu speichern, fügt Notepad vor dem Dateikopf einige unsichtbare Zeichen (EF BB BF) ein, die sogenannte BOM (Byte Order). Markieren). ).
Nicht beschränkt auf in Notepad gespeicherte Dateien, solange die Öffnung der Datei mehrere unsichtbare Zeichen „EF BB BF“ enthält (das Hexadezimalzeichen sollte xEFxBBxBF sein, sichtbar, wenn die Datei im Binärformat bearbeitet wird). Dies ist wie eine Konvention. Wenn das System dieses Ding sieht, geht es davon aus, dass Ihre Datei UTF-8-codiert ist.
Aus diesem Grund ist die Datei, die Sie dem Benutzer präsentieren, möglicherweise verstümmelt, wenn die Datei keine Stückliste hat.
PS: Tatsächlich können Sie BOM als das Zeichensatzattribut in HTML und das Codierungsattribut in XML verstehen, die als Bezeichner dienen.
Lösung:
Wie gibt man also Stücklisten in PHP aus?
Die Antwort lautet Ausgabe bevor der gesamte Inhalt ausgegeben wird:
print(chr(0xEF).chr(0xBB).chr(0xBF));
Wenn Sie eine Datei generieren, können es natürlich die folgenden beiden sein:
fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF)); file_put_contents($file, chr(0xEF).chr(0xBB).chr(0xBF));
Der obige Inhalt dient nur als Referenz!
Empfohlenes Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonPHP schreibt verstümmelte TXT-Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!