完璧な2つのphp検出文字列がutf-8符号化関数共有であるかどうか

1154 ワード

php開発ではiconv(),mb_などのトランスコード関数が用いられる場合がある.convert_Encoding()関数は、関数で符号化するときや復号するときに、現在の文字列符号化タイプを判断するより、utf-8符号化であるかどうかを判断し、そうであれば符号化変換などの操作を行う必要がある場合があります.以下は小編整理の現在のweb開発におけるネット上の使用率が比較的高い、良いphp UTF-8符号化に関する判断関数であり、コードは以下の通りである.

function is_utf8($string) //   
{
// From http://w3.org/International/questions/qa-forms-utf-8.html
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 mb_is_utf8($string) //   
{
return mb_detect_encoding($string, ‘UTF-8′) === ‘UTF-8′;
}

mb_detect_Encoding()関数はphpの内蔵関数であり、現在の文字列符号化タイプを判断するために使用されます.この関数には3つのパラメータがあり、1つ目のパラメータは判断する文字列であり、2つ目のパラメータは比較する文字符号化リストであり、文字列、配列、3つ目のパラメータを要求することができます.この2つの関数が必要なPhperに役立つことを願っています.