php中iconv报错问题

在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库;但有时候iconv对于部分数据转码会无缘无故的少一些。比如在转换字符"—或者繁体"到gb2312时会出错。

下面一起慢慢看一下这个函数的用法。

最简单的应用,把gb2312置换成utf-8:

`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``);`

在用$text=iconv("UTF-8","GB2312",$text)过程中,如果遇到一些特别字符时,如:"—或者繁体",英文名中的"."等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。

针对这的问题,可以用如下代码实现:

`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``);`

你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。

还有一种方法,第二个参数,加上//IGNORE,忽略错误,如下:

`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);`

没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好。

你可能感兴趣的:(php中iconv报错问题)