Heim  >  Artikel  >  Backend-Entwicklung  >  So kodieren und transkodieren Sie mit PHP

So kodieren und transkodieren Sie mit PHP

PHPz
PHPzOriginal
2023-03-21 17:17:342149Durchsuche

Beim Schreiben von PHP-Code ist die Verarbeitung von Textdaten einer der häufigsten Vorgänge. Aufgrund der Unterschiede zwischen verschiedenen Kodierungsmethoden sind jedoch bei der Textverarbeitung Kodierung und Transkodierung erforderlich. In diesem Artikel wird hauptsächlich die Verwendung von PHP zum Kodieren und Transkodieren vorgestellt.

1. Was ist Kodierung

Kodierung ist der Prozess der Umwandlung von Informationen in ein computerlesbares Format. In der Textwelt bezieht sich Kodierung auf die numerische Darstellung eines Zeichens. Da Computer nur Zahlen und keine Texte erkennen können, müssen Texte nach bestimmten Regeln in Zahlen umgewandelt werden, bevor sie im Computer gespeichert und verarbeitet werden können. Zu den derzeit gängigen Kodierungsmethoden gehören ASCII-Kodierung, GB2312-Kodierung, UTF-8-Kodierung usw.

2. Zeichensatz und Kodierung

Zeichensatz bezieht sich auf eine Sammlung von Zeichen; Kodierung bezieht sich auf den Prozess der Speicherung von Zeichen in binärer Form im Computer. Zeichensatz und Kodierung hängen eng zusammen, da Textdaten nur dann korrekt verarbeitet werden können, wenn sie entsprechend dem richtigen Zeichensatz kodiert sind. Zu den gängigen Zeichensätzen gehören der ASCII-Zeichensatz, der GB2312-Zeichensatz, der GBK-Zeichensatz, der Unicode-Zeichensatz usw. Wenn Sie nicht wissen, wie eine Zeichenfolge codiert ist, können Sie sie nicht korrekt umcodieren.

3. Zeichenkodierungskonvertierungsfunktion

In PHP können Sie zur Kodierungskonvertierung die Funktion iconv, die Funktion mb_convert_encoding usw. verwenden.

  1. iconv-Funktion

iconv-Funktion kann eine Zeichenfolge eines Zeichensatzes in eine Zeichenfolge eines anderen Zeichensatzes konvertieren. Sein Syntaxformat ist:

string iconv(string $in_charset, string $out_charset, string $str);

Unter diesen repräsentiert $in_charset den Zeichensatz der ursprünglichen Zeichenfolge, $out_charset repräsentiert den Zielzeichensatz und $str repräsentiert die zu konvertierende Zeichenfolge.

Um beispielsweise eine UTF-8-codierte Zeichenfolge in eine GBK-codierte Zeichenfolge umzuwandeln, lautet der Code wie folgt:

$str = "这是一个UTF-8编码的字符串";
$str_gbk = iconv("UTF-8", "GBK", $str);
echo $str_gbk;
  1. mb_convert_encoding-Funktion

mb_convert_encoding-Funktion kann eine Zeichenfolge von einem Zeichensatz in einen anderen Zeichensatz konvertieren. Das Syntaxformat lautet wie folgt:

string mb_convert_encoding(string $str, string $to_encoding, mixed $from_encoding);

Darunter repräsentiert $str die zu konvertierende Zeichenfolge, $to_encoding den Zielzeichensatz und $from_encoding den Zeichensatz der ursprünglichen Zeichenfolge. Darüber hinaus verfügt die Funktion mb_convert_encoding über einen optionalen vierten Parameter $encodings, der zur Angabe mehrerer alternativer Zeichensätze verwendet wird.

Um beispielsweise eine gb2312-codierte Zeichenfolge in eine UTF-8-codierte Zeichenfolge umzuwandeln, lautet der Code wie folgt:

$str = "这是一个gb2312编码的字符串";
$str_utf8 = mb_convert_encoding($str, "UTF-8", "gb2312");
echo $str_utf8;

4. So beurteilen Sie die Zeichenfolgencodierung

Wenn die verarbeiteten Textdaten dies nicht angeben Zeichensatz, dann ist eine automatische Identifizierung von Codes erforderlich. Sie können die folgenden Methoden verwenden, um die Zeichenfolgenkodierung in PHP zu ermitteln:

1. Verwenden Sie die Funktion mb_detect_encoding.

Die Funktion mb_detect_encoding kann die Kodierungsmethode der Zeichenfolge automatisch erkennen. Das Syntaxformat lautet wie folgt:

string|false mb_detect_encoding(string $str, array|string $encoding_list = NULL, bool $strict = false)

Darunter stellt $str die zu testende Zeichenfolge dar, $encoding_list stellt ein Zeichensatzarray dar, das die zulässigen alternativen Zeichensätze angibt, und $strict stellt dar, ob strenge Tests durchgeführt werden sollen. Wenn die Funktion mb_detect_encoding die Codierung der Zeichenfolge nicht korrekt erkennen kann, gibt sie „false“ zurück.

Um beispielsweise die Kodierungsmethode einer Zeichenfolge zu erkennen, lautet der Code wie folgt:

$str = "这是一个UTF-8编码的字符串";
echo mb_detect_encoding($str);

2. Dateiinfo-Erweiterung verwenden

Fileinfo ist eine Erweiterung von PHP, die die Kodierungsmethode einer Textdatei durch Lesen bestimmen kann Datei-Header-Informationen. Um die Dateiinfo-Erweiterung zur Codierungsidentifizierung zu verwenden, müssen Sie den folgenden Code verwenden:

$finfo = finfo_open(FILEINFO_MIME_ENCODING);
echo finfo_file($finfo, 'path/to/text.txt');
finfo_close($finfo);

Der obige Code gibt die erkannte Codierungsmethode zurück, z. B. UTF-8, GBK usw.

5. Häufig gestellte Fragen

  • Die automatische Erkennung der Kodierung ist möglicherweise nicht genau. Bei der Konvertierung der Zeichenfolgenkodierung ist es am besten, den Zeichensatz festzulegen.

  • In PHP verwenden Sie die Erweiterung mbstring, um verschiedene Zeichensätze zu unterstützen. Es wird empfohlen, den Standardzeichensatz auf UTF-8 festzulegen.

  • Während der Verwendung der iconv-Funktion werden illegale Zeichen gelöscht. Die Lösung besteht darin, die Zeichen zu erkennen, bevor die Funktion aufgerufen wird.

6. Zusammenfassung

In PHP glaube ich, dass diese im Artikel vorgestellten Funktionen Programmierern dabei helfen können, Konvertierungsvorgänge für die Zeichenfolgencodierung einfach durchzuführen. Wenn Sie auf andere Probleme bei der Kodierungskonvertierung stoßen, können Sie den Inhalt der Zeichenkodierung in der PHP-Dokumentation nachschlagen oder Fragen an die PHP-Community stellen.

Das obige ist der detaillierte Inhalt vonSo kodieren und transkodieren Sie mit PHP. 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