用重音切割字符串


Cutting a string with accents

可能的重复项:
将多字节字符串截断为 n 个字符

你好

正在开发一个法语网站,我创建了一个函数,可以在 X 个字符后剪切字符串。 它工作得很好,但是当最后一个字符有重音时,它有 (?) 而不是字符。

这是我的函数

function neat_trim3($str, $n, $delim='...') {
    $len = strlen($str);
    if ($len > $n) {
        $tocut = $len-$n;
        $output = substr($str,0,-$tocut);
        return $len.' - '.$output.$delim;
    }
    else {
        return $str;
    }
}

$str = "C'est une soirée privé ce soir";
echo eat_trim3($str, 15 , '...' );   
// GIVES ME             C'est une soir�...
页面

的其余部分完美地回显了页面,我甚至可以在没有剪切的情况下回显相同的字符串,效果很好。

任何帮助表示赞赏。

谢谢。

使用 mb_substrmb_strlen 函数。它不起作用,因为您使用的是 UTF-8,它具有多字节字符,并且您在中间剪切了。