php mb_detect_encoding检测字符串编码有误的问题
当字符短较短时,mb_detect_encoding会出现误判的情况发生,有遇到此问题的朋友,可以参考下本文的解决方法。
例如:
$encode = mb_detect_encoding($keytitle, array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′));
if ($encode == “UTF-8″){
$keytitle = iconv("UTF-8″,"GBK",$keytitle);
}
检测字符串的编码是否UTF-8,是的话就则转换为GBK。
可是当 $keytitle = '%D0%BE%C6%AC'; 时。
检测结果却是UTF-8,这其实不算是bug,我们不应当过于依赖mb_detect_encoding,当字符串较短时,检测结果产生偏差的可能性很大。
解决方法:
参数解释:
被检测的输入变量
编码方式的检测顺序(为真时自动忽略后面的)
strict模式
适时调整编码检测的顺序,将最大可能性放在前面,可以减少转换出错的机会。
好的习惯是:当有GBK和UTF-8时,先排gb2312,即将最常用的安排在前面。
您可能感兴趣的文章:
php mb_detect_encoding检测字符串编码有误的问题
php获取字符串编码的函数mb_detect_encoding
php 检测字符编码mb_detect_encoding()函数
php判断字符串编码是否为utf8的函数举例
php中mb_detect_encoding检测文件编码方法[非完美]
php判断字符编码的二个方法
php 字符串编码转换程序
php获取字符串的编码格式的函数
php mb_detect_encoding判断字符串编码方法
学习php字符串编码的转换与判断