Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn chinesische PHP-Zeichen in verstümmelte Dateien geschrieben werden?

Was tun, wenn chinesische PHP-Zeichen in verstümmelte Dateien geschrieben werden?

PHPz
PHPzOriginal
2023-04-25 17:29:02542Durchsuche

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);

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 ] )
#🎜🎜 #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);
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn