原文:
请先看以下代码,这个页面是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 Xu2009-08-21
posted on 2016-07-26 12:10 阅读( ...) 评论( ...)