php iconv 函数参数的区别

本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/57

用户输入:英特尔® 酷睿™ i7处理器大显身手

case1

$value = iconv("UTF-8","GBK//TRANSLIT",$value);

结果:

英特尔(R) 酷睿(TM) i7处理器大显身手

case2

$value = iconv("UTF-8","GBK//IGNORE",$value);

结果:

英特尔 酷睿 i7处理器大显身手

case3

$value = iconv("UTF-8","GBK",$value);

结果:

英特尔

case4

mb_convert_encoding($value, "GBK","UTF-8");

结果:

英特尔? 酷睿? i7处理器大显身手

分析

iconv ( string $in_charset , string $out_charset , string $str )
  • 如果在 out_charset 后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。
  • 如果你添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。
  • 如果out_charset 后面无添加字符串,会从第一个不能识别的字符开始截断,并生成一个E_NOTICE。因此后边的内容被丢弃了。

朋友们可以关注下我的公众号,获得最及时的更新:

image

原文地址:https://www.cnblogs.com/zhangyachen/p/8035676.html