php str_split编码ussies

时间:2017-04-13 18:34:37

标签: php encoding character ascii

我有点试图用谷歌搜索我想象的一切(

我有一个存储在变量中的俄语字符串 我需要将gd2库中的一个字符放在另一个字符上。 一切正常,除了1比1。 当我尝试使用str_split,或者使用char或substring将模拟或char分割时,我会得到这样的结果:

$str = "ку";
$data = str_split($str);
var_dump($data);

    array(14) { [0]=> string(1) "&" 
[1]=> string(1) "#" 
[2]=> string(1) "1" 
[3]=> string(1) "0" 
[4]=> string(1) "8" 
[5]=> string(1) "2" 
[6]=> string(1) ";" 
[7]=> string(1) "&" 
[8]=> string(1) "#" 
[9]=> string(1) "1" 
[10]=> string(1) "0" 
[11]=> string(1) "9" 
[12]=> string(1) "1" 
[13]=> string(1) ";" }

我尝试了所有我能找到的东西,但结果仍然是一样的。希望你能帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

您的字符串包含多字节字符。基本的PHP字符串函数仅适用于单字节字符。有一些特殊的mb_*字符串函数,但mb_split函数无法满足您的要求。

因此,您应该将preg_split()与unicode标志一起使用:

preg_split('//u', "ку", -1, PREG_SPLIT_NO_EMPTY);