cakePHP preg_split utf8 characters



preg split和utf有问题。这是代码:

$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');

没有任何帮助。非常感谢。

您需要通过在正则表达式中添加u修饰符来为preg_split启用utf-8模式:

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

您在尝试查找解决方案时提到的配置指令在这里没有任何作用。

$original = mb_split("[s]+", 'Šios baterijos kaista');
print_r($original);

结果:

Array
(
    [0] => Šios
    [1] => baterijos
    [2] => kaista
)

注:

1( 使用mb_split时,不要忘记从regex模式中删除前导和尾部的"/"。

2( 只有在启用mbstring扩展时才有效。

相关内容

  • 没有找到相关文章

最新更新