您的位置:首页 > 编程语言 > PHP开发

php转化编码函数iconv与mb_convert_encoding

2012-08-03 13:12 721 查看
一、作用
可以在有需要的使用场合(如:解决在GB2312编码环境下使用Ajax产生的中文字乱码的问题)方便进行编码转换,以解决网页乱码的问题。

二、iconv
使用举例(注:将以下代码保存为一个utf-8编码格式文件再测试,才能看出效果)

<?php
header("Content-type: text/css; charset=gb2312");
echo $str="技术导航者-www.55nav.com";//这一行显示为乱码
echo "<hr>";
echo iconv("utf-8", "gb2312", $str);//这是把utf-8转换为gb2312,显示正常
?>


(测试gb2312转换为utf-8方法同理。)
注意:发现iconv在转换字符”—”(中文的破折号)到gb2312时会出错,这个”—”及以后的字符都无法转换成功,无法输出。另外mb_convert_encoding没有这个bug。

三、mb_convert_encoding
使用举例(注:将以下代码保存为一个utf-8编码格式文件再测试,才能看出效果)

<?php
header("Content-type: text/css; charset=gb2312");
echo $str="技术导航者-www.55nav.com";//这一行显示为乱码
echo "<hr>";
echo mb_convert_encoding($str,'gb2312', "utf-8" );//这是把utf-8转换为gb2312,显示正常
?>


(测试gb2312转换为utf-8方法同理。)
注意:此函数的执行效率比iconv差。
如果没有没有开启php的mbstring扩展,则需要做如下设置,让php支持该扩展:
1、windows 服务器环境
编辑 php.ini 文件,将; extension=php_mbstring.dll 前面的 ; 去掉,重启网页服务器。
2、Linux服务器环境
在编译配置时加入 –enable-mbstring=cn 编译参数,再进行PHP的编译安装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: