您的位置:首页 > 编程语言 > PHP开发

用PHP如何判断一个文件的编码?

2009-11-10 11:16 489 查看
整理自:http://bbs.phpchina.com/viewthread.php?tid=18006

文件a.txt,用PHP如何判断它的编码是GBK还是UTF-8呢?

1,重新认识一下此问题,当时版主回复的时候我就觉得mb函数里一定有这样的功能,但今日研究了mb库,并没有这样的功能。用mb_detect_encoding总是不准确。

echo mb_detect_encoding(file_get_contents('a.txt'));

2,我在PHP的在线文档中找了一个方法,可以解决你的问题,需要自己编写一个函数来实现。

具体代码如下:

function isUTF8($str)

{

if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", "UTF-8"), "UTF-8", "UTF-32"))

{

return true;

}

else

{

return false;

}

}

$content = file_get_contents("a.txt");

echo isUTF8($content);

3,经测试,在编码种类不多的情况下,2方法成功率还是挺高的。

function ChickC($str)

{

$array = array('ASCII','GBK','UTF-8');

foreach ($array as $value)

{

if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", $value), $value, "UTF-32"))

return $value;

}

return false;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: