基于php iconv函数的使用详解
unix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的dll就可,例如,需要加入gb库的支持,需要如下设置: 下面Windows版的iconv文件:libiconv-1.9.1.bin.woe32.zip 将这文件解压,将bin/下面的charset.dll,iconv.dll,iconv.exe拷贝到c:/windows/ (或其它的系统PATH中) (ipaddr提醒你,这步是必须的,php_iconv.dll也是调用GNU的iconv库的,所以,先要安装GNU的iconv库) 最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错 解决方法很简单,就是在需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后.如下: 以下为引用的内容: ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。 这个iconv()这个函数,在php5中是内置的.谢谢. 列子 代码如下: echo $str= '你好,这里是卖咖啡!'; echo ' '; echo iconv('GB2312','UTF-8',$str); //将字符串的编码从GB2312转到UTF-8 echo iconv_substr($str,1,'UTF-8'); //按字符个数截取而非字节 echo iconv_strlen($str,'UTF-8'); //得到设定编码的字符串长度 //也有这样用的 $content = iconv("UTF-8","gbk//TRANSLIT",$content); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |