2013-02-28 96 views
5

preg split和utf有問題。這是代碼:PHP preg_split utf8 characters

$original['words'] = preg_split("/[\s]+/", $original['text']); 
print_r($original); 

這就是答案:

Array 
(

    [text] => Šios baterijos kaista 
    [words] => Array 
     (
      [0] => � 
      [1] => ios 
      [2] => baterijos 
      [3] => kaista 

這個代碼在CakePHP的框架乳寧。請注意[文字]在文字之前正確顯示,並在分割進度中混亂。順便說一句,我嘗試使用這些:

mb_internal_encoding('UTF-8'); 
mb_regex_encoding('UTF-8'); 
ini_set('default_charset','utf-8'); 

沒有幫助。謝謝。

+0

你有沒有試過http://php.net/manual/en/function.mb-split.php? – 2013-02-28 14:15:05

回答

8

您需要通過添加umodifier正則表達式,使UTF-8模式preg_split

preg_split("/[\s]+/u", $original['text']); 

你提到的試圖找到一個解決方案在這裏不起任何作用的部分的配置指令。