2013-02-28 4 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? –

ответ

8

Вам необходимо включить режим UTF-8 для preg_split путем добавления umodifier к регулярному выражению:

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

директивы конфигурации вы упоминаете как часть пытается найти решение, не играют никакой роли.