PHP中的switch语句无法识别特殊字符(即UTF-8)!

时间:2011-03-21 20:25:08

标签: php utf-8 case switch-statement

我的PHP代码中有一个switch语句,它似乎不会执行UTF-8字符的情况,即使输入到switch的值是UTF-8字符。它适用于所有其他角色。

CODE:

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 :(得分:0)

如果有人有一天需要使用“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);
}