PHP之字符串所使用的字符集处理及转换

一、从指定的字符集中匹配是哪种字符集:

$encode = mb_detect_encoding($str,array('ASCII', 'GB2312', 'GBK', 'UTF-8'));

       方法详见PHP手册,要注意的是,如果$str会匹配数组指定的多个字符集,那么以匹配到的第一个字符集为准。比如:如果$str既是GB2312(EUC-CN),又是是GBK(CP936),还是UTF-8,那么最终会返回哪种字符集,取决于数组指定的字符集的顺序,以先匹配的字符集为准。

二、将原字符集编码的字符串转成指定字符集的字符串:

1、iconv($from,$to,$str)

       该函数是php内置函数,执行效率高。比如把$str从GBK转成UTF-8:

$str_encode = iconv('GBK','UTF-8', $str);

第二个参数$to中最后还可以跟//TRANSLIT或//IGNORE,分别表示:

       1>//TRANSLIT:将不能转化的字符变成一个或多个近似的字符;

       2>//IGNORE:忽略掉不能转化的字符,默认从第一个非法字符截断;

2、mb_convert_encoding($str,$to,$from) 

       使用该函数需启用php的mbstring (multi-byte string)扩展,执行效率比iconv差,$from可以是字符集数组。比如把$str从GBK转成UTF-8:

$str_encode = mb_convert_encoding($str, 'UTF-8', 'GBK');
发布了108 篇原创文章 · 获赞 31 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/lzghxjt/article/details/98605682