这篇文章给大家分享的是有关如何解决php iconv中文乱码的问题的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
php iconv中文乱码的解决办法:首先下载libiconv函数库,并安装libiconv,然后重新编译php;最后在需要转成的编码后加入参数“//忽略”即可。
引用>
<强> php中iconv函数使用方法,解决中文乱码强>
iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。
1,下载libiconv函数库libiconv x.tar——1.。广州;
2,解压缩焦油-zxvf libiconv - 1. - x.tar.gz;
3,安装libiconv
#配置——prefix=/usr/地方/iconv #让 # make install4,重新编译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中文乱码的问题