当我运行这个代码和一些类似的中文时,ni(可能是其他的)会被切碎。
$sample = "ä½ ä¸å欢 é¦è å"; $parts = preg_split("/[\s,]+/", $sample); var_dump($parts); //outputs array(4) { [0]=> string(2) "�" [1]=> string(9) "ä¸å欢" [2]=> string(6) "é¦è" [3]=> string(3) "å" } //in æè§å¾ ä½ å¾ éº»ç¦ //out array(4) { [0]=> string(9) "æè§å¾" [1]=> string(2) "�" [2]=> string(3) "å¾" [3]=> string(6) "麻ç¦" }
我的正则表达式错了吗?
如果字符串是UTF-8格式,则必须使用 u
u
$sample = "ä½ ä¸å欢 é¦è å"; $parts = preg_split("/[\\s,]+/u", $sample); var_dump($parts);
如果是另一种编码,请参阅unicoraddict的 answer .
mb_split