开发者

Cutting a string with accents [duplicate]

开发者 https://www.devze.com 2023-03-06 05:19 出处:网络
This question already has answers here: Closed 11 years ago. Possible Duplicate: Truncate a multibyte String to n chars
This question already has answers here: Closed 11 years ago.

Possible Duplicate:

Truncate a multibyte String to n chars

Hello,

I'm developing a site in French and I created a function that cuts string after X number of characters. It works great, but when the last character has an accent, it has the (?) instead of the character.

Here is my function

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;
    }
}

Example

$str = "C'est开发者_开发问答 une soirée privé ce soir";
echo eat_trim3($str, 15 , '...' );   
// GIVES ME             C'est une soir�...

The rest of the page echos the page perfectly, I can even echo the same string without the cut and it works great.

Any help appreciated.

Thanks.


Use the mb_substr and mb_strlen functions. It doesn't work because you are using UTF-8, which has multi-byte characters and you cut the in the middle.

0

精彩评论

暂无评论...
验证码 换一张
取 消