最近在用dedecms二次开发会员功能;大家都知道dedecms编码是GBK格式的;所以在我们在项目中经常需要转码,在我了解中有两种转码方式:一是:iconv;二是mb_convert_encoding;
下面介绍下两种转码方式的用法:
iconv:
iconv(“UTF-8″,”GB2312”,$string);将$string由utf-8编码转化为GBK格式
第一个参数:现在字符串的编码格式;
第二个参数:想要转化的编码格式;
第三个参数:想要转化的字符串;
mb_convert_encoding:
mb_convert_encoding($string, “UTF-8″, “GBK”);将$string由GBK转化为utf-8格式
{1.需要先enable mbstring 扩展库
2.mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多
}
第一个参数:想要转化的字符串;
第二个参数:想要转化的编码格式;
第三个参数:现在字符串的编码格式;
iconv 和 mb_convert_encoding 两个转码函数的区别:
其实我用刀这个转码函数主要是在会员信息导出excel格式时,当时我添加会员的时候转码存入数据库用的是iconv,但是在我导出excel时,我用iconv时,导出部分信息可能出现空白的,这样就算是一个bug,但是用mb_convert_encoding时则不会出现这样的情况,于是我想弄清楚这两个函数到底有什么区别我就去百度看了一下;
这是我在百度里面搜到是这样说的:
发现iconv在转换字符”—”到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个”—”都无法转换成功,无法输出。 另外mb_convert_encoding没有这个bug.
一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数.
所以大家在使用的时候要注意到自己想要转换换的编码格式具体是哪种,这样你才知道哪种是更好用的呀!