php判断字符串gbk/utf8编码和转换
代码就点击进来看吧。前段时间聊天的时候卜卜口提到可以由程序提取歌曲文件的ID3信息,这样就免去那些音乐上传时候用户填写表单的步骤。仔细想想这么利国利民的东西必需试试!首先考虑到的就是编码的判断,在网上找到别人写好的代码,经测试效果赞~\(≧▽≦)/~
先来两个判断gbk/utf-8的函数
[php]
function is_utf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}
function is_gb2312($str)
{
for($i=0; $i
if( ($v >= 228) && ($v <= 233) )
{
if( ($i+2) >= (strlen($str) - 1)) return true;
$v1 = ord( $str[$i+1] );
$v2 = ord( $str[$i+2] );
if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) )
return false;
else
return true;
}
}
}
return true;
}
[/php]
然后是转换,如果不是gbk也不是utf-8按照我收无损的经验日文编码通常是shift-jis,就按这个转换!
[php]
$str=iconv('shift-jis','utf-8','要转换的内容');
[/php]
搞定~~~
php判断字符串gbk/utf8编码和转换 没有评论