|
// 经常遇到这种情况,需要对URL中的字符串进行解码,例如Google中搜索“编码”,"编码"会转换为
%E7%BC%96%E7%A0%81,使用的是utf-8编码
// 综合了网上搜集的资料和GB/UTF-8编码方法,判断一个中英文混杂的字符串是用GB2312/GBK编码还是UTF-8编码
// 返回: true - 含GB编码 false - 为UTF-8编码
function is_gb2312($str)
{
for($i=0; $i<strlen($str); $i++) {
$v = ord( $str[$i] );
if( $v > 127) {
if( ($v >= 228) && ($v <= 233) )
{
if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters
$v1 = ord( $str[$i+1] );
$v2 = ord( $str[$i+2] );
if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码
return false;
else
return true;
}
}
}
return true;
} |
|