我试图按字符爆炸字符串,但我遇到了特殊字符问题.
我目前正在使用以下功能:
$input = "Comment ça va?";
$array_input = str_split($input, 1);
print_r($array_input);
?>
这是输出:
Array (
[0] => C [1] => o [2] => m [3] => m [4] => e
[5] => n [6] => t [7] => [8] => � [9] => �
[10] => a [11] => [12] => v [13] => a [14] => ? )
我对换行符也有同样的问题:
输入:
“是他!OUI?”
输出:
Array ( [0] => H [1] => � [2] => � [3] => ! [4] =>
[5] => [6] => O [7] => u [8] => i [9] => ? )
有没有人有这个问题的解决方案?
非常感谢.
解决方法:
str_split与Unicode字符串有问题.
您可以在preg_split中使用u修饰符
例如:
$input = "Comment ça va?";
$letters1 = str_split($input);
$letters2 = preg_split('//u', $input, -1, PREG_SPLIT_NO_EMPTY);
print_r($letters1);
print_r($letters2);
会输出
Array ( [0] => C [1] => o [2] => m [3] => m [4] => e
[5] => n [6] => t [7] => [8] => � [9] => �
[10] => a [11] => [12] => v [13] => a [14] => ? )
Array ( [0] => C [1] => o [2] => m [3] => m [4] => e
[5] => n [6] => t [7] => [8] => ç [9] => a
[10] => [11] => v [12] => a [13] => ? )
标签:php,string,split
来源: https://codeday.me/bug/20190902/1789267.html