2

我有一个像“Stefan Äöüéèêë”这样的词。我想在 20 个字符后截断这个字符串……但它给了我喜欢 Stefan Äöüéèê� 的感觉。我为此使用以下代码。

$string = "Stefan Äöüéèêë";
if(strlen($string) > 20){
       $string = substr($string, 0, 20) . '...';      
}

如何获得安全截断的字符串。

4

2 回答 2

2

使用它的多字节版本:http: //php.net/manual/de/function.mb-substr.php

此外,这里有一个非常方便的 unicode 不安全方法列表:http ://www.phpwact.org/php/i18n/utf-8

注意:strlen 确实返回了错误的值

于 2013-05-24T07:37:19.363 回答
1

试试这个朋友,如果你解码字符串,那么它会给出适当长度的字符串。

$string = "Stefan Äöüéèêë";
$string= utf8_decode($string);
echo strlen($string);
if(strlen($string) > 10){
    $string = mb_substr($string, 0, 10);   
}
echo $string;
于 2013-05-24T07:53:52.183 回答