PHP的中文使用iconv截断问题的解

本文讲述PHP使用iconv中国截断解。分享给你供你参考。具体分析如下:

今天,我们做了一个收集程序。原理很简单。我们使用旋度方法获取对方页面的HTML分析,然后定期提取所需的数据并保存到数据库中。

因为其他的网页是GB2312编码,和局部使用UTF-8编码,编码转换后需要收集。

iconv方法用于编码转换

iconv字符串所需的字符编码转换

字符串(字符串的字符串in_charset iconv,out_charset美元,字符串str)

字符串str是从编码到out_charset in_charset。

转换的方法很简单,并且可以直接使用iconv的方法


< PHP
$content = iconv('gb2312 ','utf-8,$content); / / $内容是采集的内容
>




几个页面已经测试过,可以正常收集,但在以后的收集中,有几页是不完整的。

首先考虑是否有规律的错误,检查出问题后检查。通过调查,发现iconv转码的含量小于集合的内容。

看看Apache日志,看到提示:注意:iconv():检测到输入字符串非法字符。

打开说明书,看下面的说明

如果你加入 / /直译out_charset字符串,将使传递函数(音译)。这意味着,当一个角色不能由一个目标字符集的形式,它可以由一个或多个字符的字符近似。

如果你添加一个字符串 / /忽略,人物无法在目标字符集表示将被丢弃。否则,乙方开始截断从第一个无效字符,使e_notice。

原来的iconv遇到无法识别的内容,它开始被截断从第一识别的特征和产生的e_notice.so后面的内容被丢弃。

在输出字符集后添加忽略只会丢弃无法识别的内容,并且不会截断和丢弃它后面的内容。

节目改版后一切正常。


< PHP
$content = iconv('gb2312 ','utf-8 / /忽略,$content); / / $内容是采集的内容
>




提示:使用iconv的时候,如果你想使用UTF-8编码,使用UTF-8而不是使用UTF8,因为UTF8一些服务器的问题。

希望本文能对大家的PHP程序设计有所帮助。