好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中iconv函数在gb232与utf-8之间转码时出错断掉的解决方法

最近在做一个采集程序,需要用到iconv函数把抓取来过的gb2312编码的页面转成utf-8, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一部分。让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—",英文名中的"."等等字符,转换就断掉了,这些字符后的文字都没法继续转换了。

 

解决方法很简单,就是在需要转成的编码后加 "//IGNORE"  也就是iconv函数第二个参数后,忽略错误。如下:

$text=iconv("gb2312","utf-8//IGNORE",$text);

 

 还有一种更简单的方法,

 

不使用gb2312,而写成GBK,就可以了,如下:

$text=iconv("gbk","utf-8",$text);

查看更多关于php中iconv函数在gb232与utf-8之间转码时出错断掉的解决方法的详细内容...

  阅读:72次