Heim > Backend-Entwicklung > PHP-Problem > Was soll ich tun, wenn die iconv-Funktion in PHP einen Fehler meldet?

Was soll ich tun, wenn die iconv-Funktion in PHP einen Fehler meldet?

WBOY
Freigeben: 2023-03-15 17:38:01
Original
2595 Leute haben es durchsucht

Methode: 1. Fügen Sie „//IGNORE“ nach dem zweiten Parameter der Funktion hinzu. Die Syntax lautet „iconv(„UTF-8“, „GB2312//IGNORE“,..)“ 2. Ersetzen Sie gb2312 durch „ utf-8“, die Syntax lautet „iconv(“GB2312“,“UTF-8“,..)“.

Was soll ich tun, wenn die iconv-Funktion in PHP einen Fehler meldet?

Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 7.1, Dell G3-Computer

Was tun, wenn die iconv-Funktion einen Fehler in PHP meldet?

iconv()-Einführung

Das iconv Die Funktion kann eine bekannte Zeichensatzdatei in eine andere bekannte Zeichensatzdatei konvertieren. Beispiel: Konvertieren von GB2312 nach UTF-8.

Die iconv-Funktion ist in PHP5 integriert und der GB-Zeichensatz ist standardmäßig aktiviert.

iconv()-Fehler

Iconv macht einen Fehler, wenn das Zeichen „-“ in gb2312 konvertiert wird. Die Lösung besteht darin, „//IGNORE“ nach der zu konvertierenden Codierung hinzuzufügen, d. h. nach dem zweiter Parameter der iconv-Funktion. Wie folgt:

      iconv("UTF-8", "GB2312//IGNORE", $data)
Nach dem Login kopieren

ignore bedeutet, Fehler während der Konvertierung zu ignorieren. Ohne den Ignorierparameter können nicht alle Zeichenfolgen gespeichert werden, die auf dieses Zeichen folgen.

In PHP kann die Iconv-Funktionsbibliothek die Konvertierung zwischen verschiedenen Zeichensätzen durchführen und ist eine unverzichtbare Basisfunktionsbibliothek in der PHP-Programmierung, aber manchmal ist iconv ohne Grund nicht in der Lage, einige Daten zu transkodieren. Beispielsweise tritt beim Konvertieren der Zeichen „- oder traditionelles Chinesisch“ in gb2312 ein Fehler auf.

Lassen Sie uns langsam einen Blick auf die Verwendung dieser Funktion werfen.

Die einfachste Anwendung, ersetzen Sie gb2312 durch utf-8:

`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``);`
Nach dem Login kopieren

Wenn Sie bei der Verwendung von $text=iconv("UTF-8","GB2312",$text) auf Sonderzeichen stoßen, wie zum Beispiel: „-oder traditionelles Chinesisch“, „.“ und andere Zeichen in englischen Namen wird die Konvertierung unterbrochen. Der Text nach diesen Zeichen kann nicht weiter konvertiert werden.

Um dieses Problem zu lösen, können Sie den folgenden Code verwenden, um es zu erreichen:

`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``);`
Nach dem Login kopieren

Sie haben richtig gelesen, es ist so einfach, verwenden Sie nicht gb2312, sondern schreiben Sie es einfach als GBK.

Es gibt eine andere Methode, den zweiten Parameter, //IGNORE hinzufügen, Fehler ignorieren, wie folgt:

`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);`
Nach dem Login kopieren

Es ​​gibt keinen spezifischen Vergleich zwischen diesen beiden Methoden, ich denke, dass die erste Methode (GBK statt gb2312) besser ist.

Beispiele sind wie folgt:

  <?php
    echo $str= ‘你好,这里是卖咖啡!’;
    echo &#39;<br />&#39;;
    echo iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $str); //将字符串的编码从GB2312转到UTF-8
    echo &#39;<br />&#39;;
    echo iconv_substr($str, 1, 1, &#39;UTF-8&#39;); //按字符个数截取而非字节
    print_r(iconv_get_encoding()); //得到当前页面编码信息
    echo iconv_strlen($str, &#39;UTF-8&#39;); //得到设定编码的字符串长度
  ?>
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die iconv-Funktion in PHP einen Fehler meldet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage