$string = iconv("UTF-8", "UTF-8//IGNORE", $string);
我认为这段代码会删除无效的UTF-8字符,但它会产生[E_NOTICE] "iconv(): Detected an illegal character in input string"
。我错过了什么,如何正确地从非法字符中删除一个字符串?iconv UTF-8 // IGNORE仍然会产生“非法字符”错误
$string = iconv("UTF-8", "UTF-8//IGNORE", $string);
我认为这段代码会删除无效的UTF-8字符,但它会产生[E_NOTICE] "iconv(): Detected an illegal character in input string"
。我错过了什么,如何正确地从非法字符中删除一个字符串?iconv UTF-8 // IGNORE仍然会产生“非法字符”错误
输出字符集(第二个参数)应该与输入字符集(第一个参数)不同。如果它们相同,那么如果字符串中存在非法UTF-8字符,则iconv
将根据输入字符集将其拒绝为非法。
你提出了一个解决方案?我已经[阅读](http://blog.liip.ch/archive/2005/01/24/how-to-get-rid-of-invalid-utf-8-characters.html)[that]( http://www.php.net/manual/en/function.iconv.php#78972)这应该工作 – Znarkus 2012-02-21 10:46:27
是的,我已经看到了这个链接,但看看这个https://github.com/EllisLab /笨/问题/ 261。我的理解是,iconv现在不做输入编码 - 但我可能是错的。上面的链接也有一个链接到另一种解决方案,它位于https://gist.github.com/1262496。 – 2012-02-21 11:10:31
这很有道理。我将首先尝试'mb_convert_encoding($ string,“UTF-8”,“UTF-8”)',如果不能解决问题,我会尝试一下。谢谢! – Znarkus 2012-02-21 13:40:33