проверка строки в utf-8
<?php
/*
* проверка строки в utf-8
*/
function is_utf8($string)
{
r eturn preg_match
('%^(?:
[x09x0Ax0Dx20-
x7E] # ASCII
| [xC2-xDF][x80-
xBF] # non-
overlong 2-byte
| xE0[xA0-xBF]
[x80-
xBF] # excluding overlongs
| [xE1-xECxEExEF]
[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);
}
//
как не трудно догадаться возвращает 0 или 1, пример:
$text='Cъешь еще этих мягких французских булок, да выпей чаю';
if (is_utf8($text))
{
echo 'строка1 в утф-8 ';
}
else
{
echo 'строка1 содержит плохие символы ';
}
//
пример некорректной строки, просто передадим картинку в текст
$text=file_get_contents
( 'http:/ /
www.w3.org/Icons /
w3c_home.gif');
if (is_utf8($text))
{
echo 'строка2 в утф-8 ';
}
else
{
echo 'строка2 содержит плохие символы ';
}
// http:/ /
www.w3.org /
International /
questions/qa -
forms -
utf-8.en.php
?>