Оператор switch в PHP не распознает специальные символы (т. Е. UTF-8)! - PullRequest
2 голосов
/ 21 марта 2011

У меня есть один оператор switch в моем PHP-коде, и кажется, что он не выполняет регистр с символом UTF-8, даже если значение, установленное для switch, является символом UTF-8. Работает со всеми остальными персонажами.

КОД:

echo $word[$i];

switch($word[$i]){

 case "a": echo "aaaa"; break;

 case "č": echo "aaaa"; break;
}

Если $ word [$ i] равно "a", код отображает "a" и "aaaa", если $ word [$ i] равно "č", код отображает "č", но не отображает "aaaa" , Он просто игнорирует регистр с "č". Я также пробовал дело с одинарными кавычками.

1 Ответ

0 голосов
/ 22 марта 2011

Если кому-то когда-нибудь понадобится использовать «str_split» для строк utf-8, здесь работает функция:

function str_split_utf8 ($string, $split_length = 1)
{
 $length = (int) $split_length;
 $string = (string) $string;

if ($length < 1)
{
 return false;
}

return preg_split("/(.{{$length}})/us", $string, -1,
PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
}
...