用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;
}
文件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;
}
相关文章推荐
- 如何检测或判断一个文件或字节流(无BOM)是什么编码类型
- 如何判断一个文件的编码格式是gb2312还是gbk等
- php如何判断一个字符串是不是base64编码
- 如何判断一个txt文件的编码格式
- 如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)
- 如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)
- 如何判断Unix系统的一个库文件是32位还是64位的
- 【转载】如何在shell中判断一个文件是否为空
- php将一个txt文件用base64编码并保存
- PHP如何判断一个数组是一维的还是二维的
- php-判断一个文件是否存在,便于删除等操作
- PHP如何判断远程图片文件是否存在
- VC 如何判断一个文件为目录
- 如何判断Unix系统的一个库文件是32位还是64位的
- php如何判断一个字符串是否包含另一个字符串
- PHP如何判断文件、目录是否存在?
- PHP如何判断一个gif图片是否为动画?
- 如何判断文件的编码格式
- 在php中,如何判断一个请求是ajax请求还是普通请求? jquery
- php學習 --- 调节器 以及如何判断一个字符串是否是邮件