如何解决php iconv中文乱码的问题

  介绍

这篇文章给大家分享的是有关如何解决php iconv中文乱码的问题的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

php iconv中文乱码的解决办法:首先下载libiconv函数库,并安装libiconv,然后重新编译php;最后在需要转成的编码后加入参数“//忽略”即可。

如何解决php iconv中文乱码的问题

<强> php中iconv函数使用方法,解决中文乱码

iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。

1,下载libiconv函数库libiconv x.tar——1.。广州;

2,解压缩焦油-zxvf libiconv - 1. - x.tar.gz;

3,安装libiconv

#配置——prefix=/usr/地方/iconv   #让   # make install

4,重新编译php增加编译参数——with-iconv=/usr/地方/iconv

<强> windows下

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

这是iconv函数的一个bug.iconv在转换字符“产生绯闻;到gb2312时会出错,解决方法很简单,就是在需要转成的编码后加“//IGNORE"也就是iconv函数第二个参数后。如下:

以下为引用的内容:

iconv (“UTF-8",“GB2312//IGNORE",元数据)

忽略的意思是忽略转换时的错误,如果没有忽略参数,所有该字符后面的字符串都无法被保存。

iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。

如果是了win2000 + php,你可以修改php . ini文件,将扩展=php_iconv.dll前的“,“去掉,同时你要复制你的原php安装文件下的iconv。dll到你的winnt/system32系统下(如果你的dll指向的是这个目录)

<强>在linux环境下强,用静态安装的方式,在配置时加多一项——with-iconv就可以了,phpinfo看得到iconv的项。

使用的简单例子:

$ zip=新ZipArchive();//打开文件如果文件已经存在则覆盖,如果没有则创建   如果($ zip→打开(目的地,覆盖美元吗?ZIPARCHIVE::覆盖:ZIPARCHIVE::创建)!==true) {   返回错误;   }//向压缩文件添加文件   foreach (valid_files美元美元文件){//$ zip→addFile(文件,文件美元);   (file_info_arr=pathinfo美元文件);   文件名=file_info_arr美元[& # 39;basename # 39;];   $ filesss=iconv (& # 39; utf - 8 # 39;, & # 39; GBK//忽略# 39;,$ filename);   $ zip→addFile(文件,filesss美元);   }

PHP中的mb_convert_encoding与iconv函数介绍

mb_convert_encoding这个函数是用来转换编码的。原来一直对程序编码这一概念不理解,不过现在好像有点开窍了。

不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或文字编辑器写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。

mb_convert_encoding的用法见官方:http://cn.php.net/manual/zh/function.mb-convert-encoding.php

不过要使用上面的函数需要安装但是需要先使mbstring扩展库。

PHP中的另外一个函数iconv也是用来转换字符串编码的,与上函数功能相似。

下面还有一些详细的例子:

iconv -请求字符串转换为字符编码

(PHP 4祝辞=你,PHP 5)

mb_convert_encoding -字符编码转换

(PHP 4祝辞=4.0.6,PHP 5)

用法:

mb_convert_encoding字符串(string str,字符串to_encoding[,混合from_encoding])

需要先使mbstring扩展库,在PHP . ini中里将;=php_mbstring延伸。dll前面的;去掉

mb_convert_encoding可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;

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

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

返回转换后的字符串或假>感谢各位的阅读!关于如何解决php iconv中文乱码的问题就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

如何解决php iconv中文乱码的问题