解决办法php中利用iconv转化字符串编码出错【Detected an illegal character in input string 】
用iconv函数将gb2312转换为utf-8时,怎么有些汉字会出现问题,像"啰"字就会提示如下:
Notice: iconv() [function.iconv]: Detected an illegal character in input string
解决办法1:
造成此错误的原因:
啰不是gb2312 字符集里的字,是gbk字符集里的字。
iconv(gb2312,UTF-8//IGNORE,$要转的string);这样就不会Notice: iconv() [function.iconv]:
解决办法2:
在php中利用iconv函数转化汉字字符串时提示如下错误:
Notice: iconv() [function.iconv]: Detected an illegal character in input string in a.php on line 796
出错的语句如下:
iconv("GB2312","UTF-8",$a);
解决办法,将GB2312更改为GBK即可搞定:
iconv("GBK","UTF-8",$a);
出现这个错误的原因是字符串$a中出现了超出gb2312范围的字符,所以iconv函数出错。因为gbk范围比gb3212范围广,又因为这两种格式的编码相同只是范围不同而已,故采用大范围的gbk来定义字符串能够包含比较多的字符,因此转化成功!