宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > PHP教程

[php]PHP字符集转换函数iconv与mb_convert_encoding使用区别

2016-10-13 00:16:48 点击量:10 标签: 收藏本文

iconv 和 mb_convert_encoding 都是PHP的编码转换函数,但使用上却区别比较大,下面我们来看看。

iconv 函数定义如下:

  1. string iconv ( string $in_charset , string $out_charset , string $str )
  • in_charset 为目前的编码方式;
  • out_charset 除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT //IGNORE
    其中://TRANSLIT 如果在目标编码中找不到与源编码相匹配的字符,会选择相似的字符进行转换;
    //IGNORE 表示忽略不能转换的字符;
    默认效果是从第一个非法字符截断并抛出一个E_NOTICE;
  • str为带转换的字符串;
  • 如果转换失败就返回FALSE;

mb_convert_encoding 函数定义如下:

  1. string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )

mb_convert_encoding 需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉。

 

使用差异:

  • iconv 在默认情况下,不使用//TRANSLIT 和 //IGNORE,如果有转换不了的字符将报异常;而mb_convert_encoding不会.
  • mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,即$from_encoding 参数是可选的;
  • 执行效率mb_convert_encoding 比iconv差太多。

因此,一般情况下用iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数。

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室