PHP识别文件内容编码与转换

PHP识别文件编码有多种方式,例如可以用mb_detect_encoding函数。
以下是识别文件是否是GBK或者UTF8的函数,通常情况下,如果isGBK返回true,那么isUTF8肯定是返回false。

function isGBK($str)
{
	if(mb_detect_encoding($str, 'GBK', true)===false){
		return false;
	}
    return true;
}

function isUTF8($str)
{
	if(mb_detect_encoding($str, 'UTF-8', true)===false){
		return false;
	}
    return true;
}

但也有例外,例如一个文件的格式是UTF-8,但文件内容里都是英文或数字,没有出现汉字的情况,这时候,这两个函数都会返回true。
针对这种情况,为了达到识别效果,可以通过在字符串后面加入一个中文全角空格,这样就可以准确判断了。

if(isGBK($str) && isUTF8($str)){
    $str.=" ";
}

发表评论

邮箱地址不会被公开。 必填项已用*标注