用PHP判断文件是否是UTF-8编码(检查Bom)_PHP教程
程序员文章站
2022-05-29 20:47:43
...
UTF-8编码的文件分为带Bom和不带Bom两种,带Bom的大家都很容易处理,不带Bom的会有点麻烦,所以写了一个函数去判断,代码如下:
//返回 1 表示纯 ASCII(即是所有字符都不大于127)
//返回 2 表示UTF8
//返回 0 表示正常gb编码
function TestUtf8($text)
{
if(strlen($text) $lastch = 0;
$begin = 0;
$BOM = true;
$BOMchs = array(0xEF, 0xBB, 0xBF);
$good = 0;
$bad = 0;
$notAscii = 0;
for($i=0; $i {
$ch = ord($text[$i]);
if($begin {
$BOM = ($BOMchs[$begin]==$ch);
$begin += 1;
continue;
}
if($begin==4 && $BOM) break;
if($ch >= 0x80 ) $notAscii++;
if( ($ch&0xC0) == 0x80 )
{
if( ($lastch&0xC0) == 0xC0 )
{
$good += 1;
}
else if( ($lastch&0x80) == 0 )
{
$bad += 1;
}
}
else if( ($lastch&0xC0) == 0xC0 )
{
$bad += 1;
}
$lastch = $ch;
}
if($begin == 4 && $BOM)
{
return 2;
}
else if($notAscii==0)
{
return 1;
}
else if ($good >= $bad )
{
return 2;
}
else
{
return 0;
}
}
推荐阅读
-
用PHP方法判断是否是手机登录的代码教程
-
完美的2个php检测字符串是否是utf-8编码函数分享,字符串utf-8_PHP教程
-
html - mysql中的这个utf8_general_ci是否就对应php文档的UTF-8 是否就是文件格式的utf-8无BOM编码?
-
用PHP判断文件是否是UTF-8编码(检查Bom)_PHP教程
-
用PHP判断文件是否是UTF-8编码(检查Bom)
-
php 判断网页是否是utf8编码的方法_PHP教程
-
php判断文件存在是用file_exists 还是 is_file_PHP教程
-
php中判断文件存在是用file_exists还是is_file的整理_PHP教程
-
检查php文件中是否含有bom的php文件_PHP教程
-
检查php文件中是否含有bom的函数_PHP教程