如何使用utf-8进行子工作?

时间:2017-06-26 09:58:11

标签: php utf-8

当我使用“substr”时,为什么我的文字显示不正确?

function limitstring($input,$number) {
    if (strlen($input) > $number){
        $input = substr($input, 0, $number) . '...';
    } 
    return $input;
}

输入:

echo $row['text'];

输出:Käse

输入:

limitstring($row['text'],60); 

输出:   KSE ...

2 个答案:

答案 0 :(得分:2)

在处理unicode字符串时,您应该使用多字节函数集mb_。点击此处:http://php.net/manual/en/function.mb-substr.php

答案 1 :(得分:0)

如果由于某种原因无法切换到mb_strlen()mb_substr(),这将是正确的修复,则需要启用mbstring.func_overload配置指令。此外,并非所有常规的基于字节的字符串函数都具有多字节等价物。

请注意,这主要是一个hack,并且该指令在PHP / 7.2.0中已弃用。