用iconv()转换一个输出字符编码不支持的字符时,如iconv('UTF-8', 'GB2312', '囧'),会遇到这样的错误提示:
Notice: iconv() [function.iconv]: Detected an illegal character in input string ...
因为GB2312表示的是简体中文,不支持像"囧"之类的更为复杂的汉字以及一些特殊字符,这当然会报错了,解决办法有两种:
1. 扩大输出字符编码的范围,如iconv('UTF-8', 'GBK', '囧'),则可以正确地输出,因为GBK支持的字符范围更广;
2. 在输出的字符编码字符串后面加上"//IGNORE",如iconv('UTF-8', 'GB2312//IGNORE', '囧'),这样做其实是忽略了不能转换的字符,避免了出错但却不能够正确地输出(即空白不、输出)。
本文介绍了在使用PHP的iconv函数进行字符编码转换时可能遇到的问题。特别是当目标编码不支持源字符串中的某些字符时,如何通过调整目标编码或设置忽略非法字符来解决问题。
2119

被折叠的 条评论
为什么被折叠?



