分享

解决iconv函数无法转换某些中文的问题

 黄三岁大爱人生 2018-07-12

请先看以下代码,这个页面是GB2312编码的:

$str = '陶喆';
echo 'gb2312-'.$str;
echo '<br />';
$str = iconv( 'gb2312' ,'utf-8' , $str );
echo 'utf8-'.$str;
echo '<br />';
$str = iconv('utf-8' , 'gb2312' , $str );
echo 'gb2312-'.$str;
?>


程序做的事情很简单,首先打印出原始的陶喆,这是GB2312编码的,然后转换成UTF-8,最后再转换成GB2312。按照程序逻辑,第3行应该也打出陶喆,不过,实际的输出却是:



我们用UTF-8编码来显示这个网页,可以看到输出是



可见,在从gb2312转换到utf-8的过程中,“喆”不见了。

出现这个问题的原因是“喆”不属于gb2312字符集里的字符,而是属于gbk里的字符,所以,要从gb2312转换到utf-8就不行了

修改程序,将gb2312改成gbk,就可以解决这个问题了。



Ferris Xu
2009-08-21

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多