In den letzten Jahren hat die Entwicklung der Netzwerktechnologie viel Komfort in unser Leben gebracht, insbesondere im Bereich der Programmentwicklung. Als Entwickler bin ich einmal auf ein Problem mit verstümmelten chinesischen Schriftzeichen gestoßen, die in Dateien geschrieben wurden. Nach einiger Zeit zur Lösung möchte ich hier meine Erfahrungen teilen.
Ursache des Problems
In meinem Projekt besteht die Anforderung, eine Variable zu schreiben, die eine große Anzahl chinesischer Schriftzeichen in einer Datei speichert. Ich habe zuerst die wahrscheinlich gebräuchlichste und einfachste Methode verwendet: Schreiben Sie die gesamte Zeichenfolge direkt mit dem folgenden Code:
$file = fopen("test.txt", "w");
fwrite($file, $str);
fclose($file);
Nach dem Login kopieren
Aber als ich test.txt öffnete, stellte ich fest, dass alle chinesischen Schriftzeichen zu Kauderwelsch geworden waren .
Problemanalyse
Schauen Sie sich zunächst die offizielle Dokumentation an. Sie können sehen, dass in der Beschreibung der fwrite()-Funktion Folgendes erwähnt wird:
fwrite — 将内容写入文件中
int fwrite ( resource $handle , string $string [, int $length ] )
Nach dem Login kopieren
#🎜🎜 #Der zweite Parameter ist eine Zeichenfolge, die wir schreiben möchten. Wenn die Zeichenfolge jedoch chinesische Zeichen enthält (einschließlich gebräuchlicher japanischer, koreanischer und anderer nicht-englischer Zeichen), sollten Sie darauf achten.
Da in Computern Zeichen durch Binärzahlen dargestellt werden, belegt Englisch im Allgemeinen ein Byte, also 8 Bits, während ein chinesisches Zeichen 2-3 Bytes benötigt. Dies führt zu einem Problem: Wenn wir chinesische Binärzahlen direkt in eine Datei schreiben, können aufgrund unterschiedlicher Betriebssysteme verstümmelte Zeichen erscheinen.
Lösung
Da das Problem im Wesentlichen darin besteht, dass die Zeichenkodierung unterschiedlich ist, können wir es lösen, indem wir dieselbe Kodierung verwenden.
In PHP ist die Kodierung des Strings festgelegt und kann über die mbstring-Bibliothek bedient werden. Daher können wir die Zeichenfolge vor dem Schreiben in dieselbe Codierung konvertieren, z. B. UTF-8:
$file = fopen("test.txt", "w");
fwrite($file, mb_convert_encoding($str, "UTF-8"));
fclose($file);
Nach dem Login kopieren
Auf diese Weise wird das Problem verstümmelter chinesischer Zeichen vermieden. Wenn Sie beim Öffnen der Datei immer noch verstümmelte Zeichen finden, liegt das möglicherweise daran, dass die Standardkodierung des von Ihnen verwendeten Texteditors nicht UTF-8 ist. In diesem Fall können Sie die Datei mit dem Editor öffnen und die Kodierung manuell konvertieren UTF-8, und Sie sehen „Korrektes Chinesisch“.
Zusammenfassung
In diesem Artikel erfahren Sie, wie Sie das Problem verstümmelter chinesischer Zeichen beim Schreiben von Dateien mit PHP vermeiden können. Der Schlüssel besteht darin, sich der Zeichenkodierungsprobleme bewusst zu sein und vor dem Schreiben eine Konvertierung der Zeichenkodierung durchzuführen. Ich hoffe, es hilft Lesern, die das gleiche Problem haben.
Das obige ist der detaillierte Inhalt vonWas tun, wenn chinesische PHP-Zeichen in verstümmelte Dateien geschrieben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!