Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn die iconv-Funktion in PHP einen Fehler meldet?
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“,..)“.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 7.1, Dell G3-Computer
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)
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``);`
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``);`
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``);`
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 '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo '<br />'; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 ?>
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!