返回旧版| 微信建站| 我要建站 | 建站学习 | 加入收藏
PHP基础当前位置:首页 > HTML教程 > PHP基础 > 正文

PHP 中字符编码转换 iconv() 和 mb_convert_encoding() 的区别

发布时间:2019-01-07 23:21:19   来源:   点击:
PHP自带了两种gbk和utf转化方法,iconv() 和 mb_convert_encoding(), 下面来说说他们的区别
1. mb_convert_encoding()

  1. //官方文档 
  2. string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] ) 

说明: 将 string 类型 str 的字符编码从可选的 from_encoding 转换到to_encoding。

from_encoding用来指定当前str的字符集。它可以是一个 array 也可以是逗号分隔的枚举列表。 如果没有提供 from_encoding,则会使用内部(internal)编码,会根据内部编码一个一个的比较,速度上会慢,所以要尽量指定少的编码。

2.iconv()

  1. //官方文档 
  2. string iconv ( string $in_charset , string $out_charset , string $str ) 
将字符串 str 从 in_charset 转换编码到 out_charset。

可以在out_charset后面也可以添加后缀

  1. //TRANSLIT: 将启用转写(transliteration)功能,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。 
  2. //IGNORE: 不能以目标字符集表达的字符将被默默丢弃,IGNORE 会忽略掉不能转化的字符。 否则,会导致一个 E_NOTICE并返回 FALSE。 

iconv() 在转换中文的 ‘——’ 时,如果不指定//TRANSLIT 或者 //IGNORE,是会出错的(mb_convert_encoding() 无此BUG)。


3.比较

相比之下,当知道当前的字符集编码时,应当首选 iconv() (要设置//TRANSLIT 或者 //IGNORE避免出错), 当大概知道编码时要尽量少的枚举,因为这影像速度。

版权所有:郑州腾石网络科技有限公司 备案信息:豫ICP备18019117号
站长QQ:2863868475 业务合作咨询:15137100750(同微信)
本站所有投放的广告是有其他网站提供,不代表本站立场,同时网站首页广告位对外出租详情咨询本站站长!同时欢迎广大站长加入个人建站团队
  • 建站客服
  • CMS仿站
  • CMS学习
  • 技术交流群:336572814