PHP 函数: iconv()

PHP 的 iconv 函数库能够完成各种字符集间的转换,是PHP编程中不可缺少的基础函数库。
1、下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz;
2、解压缩tar -zxvf libiconv-1.9.2.tar.gz;
3、安装libiconv

#configure –prefix=/usr/local/iconv
#make
#make install

4、重新编译php 增加编译参数–with-iconv=/usr/local/iconv

windows下
最近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312,发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符”—”到gb2312时会出错

解决方法很简单,就是在需要转成的编码后加 “//IGNORE” 也就是iconv函数第二个参数后.如下:

iconv(“UTF-8″,”GB2312//IGNORE”,$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

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),

下载:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz

安装:
#cp libiconv-1.8.tar.gz /usr/local/src
#tar zxvf lib*
#./configure –prefix=/usr/local/libiconv
#make
#make install

编译php
#./configure –prefix=/usr/local/php4.3.2 –with-iconv=/usr/local/libiconv/

使用的简单例子:

<?php
echo iconv(“gb2312″,”ISO-8859-1″,”我们”);

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据