在软件开发中,我们经常会遇到最让人头疼的编码问题,由于各种网络软件之间使用的默认编码都不一致也就导致了解码的不一致,最终出现了乱码问题,有时候不得不自己使用方法来转换一些网络上的数据,总结一下PHP中针对UTF-8编码字符串的几种检测方法,方便大家查阅。
mb_detect_encoding
方法可以检测给定的字符串的编码,但是它不能检测所有的编码类型,只能检测给定的几种类型(mbstring 当前实现了针对编码:UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP 的检测筛选器。对于其他编码的字符串检测将会失败;对于 ISO-8859-*,mbstring 总是检测为 ISO-8859-*;对于 UTF-16、UTF-32、 UCS2 和 UCS4,编码检测总是会失败)如下代码:function is_utf8($string) { mb_detect_order("UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP"); // return mb_detect_encoding($string) === 'UTF-8'; } $string = file_get_contents("i://test.txt"); //文本文件中可以将内容另存为为不同的编码类型,以便测试使用 is_utf8($string);