当前位置:编程学习 > php >>

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

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,