网站首页PHP学习

iconv函数gbk转码utf8

发布时间:2015-10-06编辑:Vincent H阅读(584)

    当我们做文章采集的时候,可能会出现编码不一致而导致网页乱码,我以前也经常为此头疼,后来百度发现有一个函数可以解决文章乱码,iconv:用法如下

    $data = iconv('gbk','utf-8',$data); //将data以gbk编码转换为utf-8编码,

    blob.png

    扩展如下

    echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节
    print_r(iconv_get_encoding()); //得到当前页面编码信息
    echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度
    //也有这样用的
    $content = iconv("UTF-8","gbk//TRANSLIT",$content);

    备注

    1、iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。
    如果是windows2000+php,你可以修改php.ini文件,将extension=php_iconv.dll前的";"去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(如果你的dll指向的是这个目录,我本地的没有操作这一步)
    在linux环境下,用静态安装的方式,在configure时加多一项 --with-iconv就可以了,phpinfo看得到iconv的项。(Linux7.3+Apache4.06+php4.3.2);

    2、用iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。

    string iconv ( string in_charset, string out_charset, string str )


    注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。 被截断了,当然就会少了;

    可以这样修改

    iconv("UTF-8","GB2312//IGNORE",$string)

     会忽略掉不能转化的字符;

    有了这个,乱码问题不再有,是不是很方便呢


    收录情况:百度已收录,点击查看详情
    本文地址:http://luvial.cn/content/10038.html
    转载请保留原文地址!

    如果您觉得本文对您有帮助,且您有经济能力,欢迎捐助本站
标签: php gbk转码 iconv
上一篇:20151004心情日记【加密】
下一篇:sublime text3安装与汉化