标签: PHP


PHP 5.3 中用 mb_detect_encoding 检测字符串是否为 UTF-8 的问题

作者: 我不是鱼 (2016-05-14 21:14) 分类: PHP    

PHP 提供了 mb_detect_encoding 来检测字符串的编码。例如:

mb_detect_encoding('LNMP笔记', 'UTF-8', true);


将返回 UTF-8,如果不是UTF-8将返回false。不过这种判断并不是百分百的,例如 gbk 编码的 希腊 :

mb_detect_encoding(mb_convert_encoding('希腊', 'gbk', 'UTF-8'), 'UTF-8', true);


PHP 7 中返回 false
PHP 5.3 返回 UTF-8
貌似是PHP的bug,但在PHP7总已经修复。在PHP 5.3可以用正则替代 mb_detect_encoding 检查字符串是否是 UTF-8:

preg_match('//u', mb_convert_encoding('希腊', 'gbk', 'UTF-...

查看原文


[1]