Wie wird die Kodierung von Textdateien in PHP festgelegt?

9

Wie kann ich eine Textdatei ENCODING (zum Beispiel UTF-8) in PHP setzen?

Lass mich dir mein Problem zeigen. Das ist mein Code:

%Vor%

Ausgabe: ا٠!

fwrite() hat die gleiche Ausgabe.

Aber wenn ich test.txt mit Notepad erstelle und den Zeichensatz UTF-8 setze, ist die Ausgabe das, was ich möchte. Ich möchte den Zeichensatz in der PHP-Datei setzen.

Nun ist das meine Frage: Wie setze ich Textdateicodierung durch PHP?

    
Programmer.zip 28.09.2013, 13:27
quelle

4 Antworten

17

Beim Speichern von Text in einer Datei wendet PHP keine Codierung an: Es speichert Daten genau so, wie sie in der Zeichenkette angeordnet sind.

Sie erwähnen, dass Sie Probleme beim Öffnen der Datei in notepad.exe haben. Dieser Text-Editor ist nicht sehr gut darin, die Kodierung der zu öffnenden Datei zu erraten. Wenn der Text in UTF-8 codiert ist, müssen Sie ihn als UTF-8 öffnen. Verwenden Sie nach Möglichkeit einen anderen Texteditor. Notepad ++ ist ein beliebter Ersatz.

Wenn Sie notepad.exe als letzten Ausweg verwenden müssen, schreiben Sie eine Byte Order Mark in die Datei vor Ihnen schreibe noch etwas anderes; Dadurch erkennt es die Datei als UTF-8 und macht die Datei möglicherweise für andere Zwecke unbrauchbar (siehe Wikipedia-Artikel für Details).

%Vor%     
Joni 28.09.2013, 19:58
quelle
9

Sie können dies mit mb_convert_encoding

versuchen %Vor%

Überprüfen Sie auch iconv .

Update: (versuchen Sie dies und finden Sie die richtige Codierung für Ihren Text)

%Vor%

Versuchen Sie es auch auf GitHub .

    
The Alpha 28.09.2013 13:35
quelle
1

Versuchen Sie:

%Vor%     
BAD_SEED 28.09.2013 13:35
quelle
0

Sie können eine Funktion erstellen, die ein Zeichenfolgenarray in ein utf8-codiertes Zeichenfolgenarray und ein anderes zum Decodieren und Schreiben in eine Notepad-Datei für Sie konvertiert.

%Vor%     
Asuquo12 12.05.2015 09:15
quelle