- 1
- 2
- 3
function isUTF8 ($str) {
return $utf8 = (preg_match("/^([\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*$/", $str)) ? true : false;
}
Dummy00001 08.01.2011 20:58 # 0
а для всех остальных случаев, нужно либо сохранять кодировку вместе с данными или стандартизироваться на одной кодировке на всю систему.
TarasB 09.01.2011 00:10 # +4
Dummy00001 09.01.2011 01:53 # +4
DanxilLs 09.01.2011 07:38 # 0
оно вернуло бы что либо кроме булевого типа? О_о
mindfreakthemon 09.01.2011 12:01 # 0
Лучше бы сделать как в #5188, в return, если уж хочется соблюдать типы.
DanxilLs 09.01.2011 12:14 # 0
if(isUTF8($string)){}
То какая разница? Если функция вернет значение не равно 0, и не меньше нуля. значение все равно будет true; разве не так?
mindfreakthemon 09.01.2011 12:16 # 0
Если не хочется, то, действительно, никакой разницы.