完全判定関数:
function is_utf8($gonten)
{
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr (128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)." ]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([". chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)." -".chr(191)."]{1}){2,}/",$word) == true)
{
return true;
}
else
{
return false;
}
}
is_utf8($gonten) メソッドを使用して、文字列 $gonten が utf-8 エンコードされているかどうかを確認します。
このような判定関数がネット上に出回っていますが、実はこの関数の判定は以下の通りです
function is_utf8($string) {
return preg_match('%^(?:
[x09x0Ax0Dx20-x7E] # ASCII
| [xC2-xDF][x80-xBF] # 非オーバーロング 2 バイト
| [xE1-xECxEExEF] [x80-xBF]{2} # ストレート 3 バイト
| xED[x80-x9F][x80-xBF] # サロゲートを除く
x80-xBF]{3} # プレーン 4-15
| food」と「food」はUTF-8でエンコードされていると判断されるため、前者の使用を推奨します。
http://www.bkjia.com/PHPjc/364536.html
www.bkjia.com
本当