教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php中iconv函数的bug问题

php中iconv函数的bug问题

发布时间:2016-05-28   编辑:jiaochengji.com
本文介绍下,有关php中iconv函数的一个小bug,正在研究php的朋友,可以参考看看。

在php中,使用iconv函数转换字符集很好用,不过有时iconv转换会返回false或空字符串,这不算是iconv的问题,这其实是字符集的问题,但是实际编码中应该算是iconv的bug了。

测试下这段字符串用iconv转换后的效果:
 

复制代码 代码示例:
 $str="www.jbxue.com,ok!the string is € .我要转换他!⊙●○①⊕◎Θ⊙¤㊣";
 echo '没有任何参数 : ', iconv("utf-8", "gbk", $str)."<br>";

返回结果:
第一个特殊字符以后的字符都不能显示。

iconv有两个参数:
分别是TRANSLIT 和IGNORE ,含义是TRANSLIT 表示如果目标编码里面不能翻译原编码,那么就直接找一个类似的最相近的字符或者字符串替代,例如€可能会被替换为EUR;而IGNORE   遇到目标字符集不能翻译的原始字符则直接跳过忽略,不返回false。

使用方法:
 

复制代码 代码示例:
$infocontent=iconv("utf-8","gbk//IGNORE",$infocontent);

$infocontent=iconv("utf-8","gbk//TRANSLIT",$infocontent);

鉴于此,我认为iconv应该提供一个默认的参数IGNORE,避免开发者使用不善时出现返回空字符串的情况。

您可能感兴趣的文章:
php中iconv函数的bug问题
php iconv 函数转换gb2312编码时遇到的问题
php字符编码转换问题 mb_convert_encoding与iconv函数
php iconv函数解决utf-8与gb2312编码转换问题
php编码转换实例教程
php编码转换函数例解
php iconv使用要注意的问题
php字符编码转换问题
php编码转换方法举例
php编码转换函数mb_convert_encoding与iconv

[关闭]
~ ~