首页 > PHP资讯 > PHP培训技术 > php中iconv函数在gb232与utf-8之间转码时出错断掉的解决方法

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

PHP培训技术

  最近在做一个采集程序,需要用到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培训

本文由欣才IT学院整理发布,未经许可,禁止转载。