php转化编码函数iconv与mb_convert_encoding

本文介绍如何使用iconv和mb_convert_encoding函数解决不同编码环境下网页显示乱码的问题,并对比两者的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

 

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

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

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

 

(测试gb2312转换为utf-8方法同理。)
    注意:此函数的执行效率比iconv差。
    如果没有没有开启php的mbstring扩展,则需要做如下设置,让php支持该扩展:
1、windows 服务器环境
编辑 php.ini 文件,将; extension=php_mbstring.dll 前面的 ; 去掉,重启网页服务器。
2、Linux服务器环境
在编译配置时加入 –enable-mbstring=cn 编译参数,再进行PHP的编译安装。

转载于:https://www.cnblogs.com/wangkunblog/archive/2012/08/03/2621456.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值