PHP自动获取字符串编码功能mb_detect_encoding

当使用mb_detect_encoding功能的PHP编码识别,很多人都遇到过的一个错误识别的编码问题,例如,与GB2312和utf - 8,或UTF-8和GBK(这里主要是对cp936判断)说,互联网是由于短,人物会误判,mb_detect_encoding。
例如:
复制代码代码如下所示:
mb_detect_encoding编码=美元(美元keytitle,阵列(ASCII
如果($编码= = UTF-8){
keytitle美元= iconv(UTF-8
}

该代码的功能是检测是否该字符串的编码是UTF-8或如果它是,它被转换成GBK。
但当keytitle美元= % % % % D0是C6交流;测试结果是UTF-8的。bug不是bug。当写程序,它不应该太依赖mb_detect_encoding。当字符串较短时,检测结果会有偏差。
如何解决它,我的方法是:
复制代码代码如下所示:
mb_detect_encoding编码=美元(美元keytitle,阵列('ascii ','gb2312 ','gbk ','utf-8);

三个参数是:检测到的输入变量、编码方法的序列(曾经是真的、后面自动忽略的)、严格的模式。
对代码检测的顺序进行调整,将最大可能性放在前面,以减少错误转换的机会。
总的来说,GB2312设置第一,当有GBK和UTF-8,你需要安排常用的前面。