2013-02-28 14 views
5

Hanno problemi con preg split e utf. Questo è un codice:PHP preg_split utf8 caratteri

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

Questa è la risposta:

Array 
(

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

Questo codice è runing nel quadro CakePHP. Fai notare che [il testo] è mostrato correttamente prima delle parole e viene incasinato nel progresso diviso. A proposito, ho provato a utilizzarli:

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

Nessuno aiutato. Grazie.

+0

hai provato http://php.net/manual/en/function.mb-split.php? –

risposta

8

È necessario attivare la modalità UTF-8 per preg_split aggiungendo il umodifier per l'espressione regolare:

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

Le direttive di configurazione che hai citato come parte di cercare di trovare una soluzione non svolgono alcun ruolo qui.