代码改变世界

iconv() Detected an illegal character in input string

2011-11-15 15:21  冠州  阅读(612)  评论(0编辑  收藏  举报

转自http://jeamic.blog.163.com/blog/static/88820600201010151449879/

在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来定义字符串能够包含比较多的字符,因此转化成功!

 近日发现如此依然不能解决问题,故采用以下方法忽略问题的出现。即在UTF-8后添加//IGNORE。详见http://www.cnblogs.com/chenwenbiao/archive/2011/08/25/2153711.html