当字符短较短时,mb_detect_encoding会出现误判的情况发生,有遇到此问题的朋友,可以参考下本文的解决方法。
例如:
检测字符串的编码是否UTF-8,是的话就则转换为GBK。
可是当 $keytitle = '%D0%BE%C6%AC'; 时。
检测结果却是UTF-8,这其实不算是bug,我们不应当过于依赖mb_detect_encoding,当字符串较短时,检测结果产生偏差的可能性很大。
解决方法:
参数解释:
被检测的输入变量
编码方式的检测顺序(为真时自动忽略后面的)
strict模式
适时调整编码检测的顺序,将最大可能性放在前面,可以减少转换出错的机会。
好的习惯是:当有GBK和UTF-8时,先排gb2312,即将最常用的安排在前面。