网站地图    收藏   

主页 > php专栏 > php综合实列 >

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

来源:未知    时间:2016-12-29 14:17 作者:xxadmin 阅读:

[导读] 最近在做一个采集程序,需要用到iconv函数把抓取来过的gb2312编码的页面转成utf-8, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一部分。让我郁闷了好一会儿,去...

最近在做一个采集程序,需要用到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网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论