12bet,判断是否为utf-8编码
function is_utf8($string) {
return preg_match('%^(?:
[x09x0Ax0Dx20-x7E] https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ ASCII
| [xC2-xDF][x80-xBF] https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ non-overlong 2-byte
| xE0[xA0-xBF][x80-xBF] https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ excluding overlongs
| [xE1-xECxEExEF][x80-xBF]{2} https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ straight 3-byte
| xED[x80-x9F][x80-xBF] https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ excluding surrogates
| xF0[x90-xBF][x80-xBF]{2} https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ planes 1-3
| [xF1-xF3][x80-xBF]{3} https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ planes 4-15
| xF4[x80-x8F][x80-xBF]{2} https://www.liuwanlin.info/superlin%e7%9a%84%e8%af%bb%e4%b9%a6%e7%ac%94%e8%ae%b0-52/ plane 16
)*$%xs',$string);
}
12bet,判断是否为gbk编码
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;
$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;
}