private function check_char($str, $gbk = true)
{
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 $gbk ? true : false;
}
// not enough characters
$v1 = ord($str[$i + 1]);
$v2 = ord($str[$i + 2]);
if ($gbk) {
return $v1 >= 128 && $v1 <= 191 && $v2 >= 128 && $v2 <= 191 ? false : true;
//GBK
} else {
return $v1 >= 128 && $v1 <= 191 && $v2 >= 128 && $v2 <= 191 ? true : false;
}
}
}
}
return $gbk ? true : false;
}