QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

PHP基础

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

 admin  2019-01-07 23:24:52
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避免出错), 当大概知道编码时要尽量少的枚举,因为这影像速度。

¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《PHP 中字符编码转换 iconv() 和 mb_convert_encoding() 的区别》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/html/php/760.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序