узнать длину мультибайтной строки

Мутник

Новичок
узнать длину мультибайтной строки

есть строка (УТФ-8).

надо узнать ее длинну. strlen && mb_strlen выдают неправильный результат, если в строке есть кириллица
 

Мутник

Новичок
svetasmirnova

ну это я понимаю... там то в юникоде по 2 байта на символ..
А у меня все может быть. Не только кириллица, но и латинские символы, а также немецкие, эстонские, латышские.... ;(
 

kvn

programmer
strlen(iconv("UTF-8", "KOI8-R", $str));
при условии, что у тебя там может встречаться только кирилица или анг буквы или цифры..

в случае с иероглифами - надо думать..:)
 

SiMM

Новичок
PHP:
function UTF8_strlen($str){ // (C) SiMM
  return strlen(preg_replace('#[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+#s','1',$str));
}
Хотя более правильно было бы разобраться, почему не пашет mb_strlen
PS: функция на валидность UTF-8 ложит прибором.
 
Сверху