0

我目前正在使用 substr() 函数,该函数适用于用英文书写的字符。但是,当我将其应用于用希腊语书写的字符时,文本会在 3 个句号 (...) 之前出现一个奇怪的字符(菱形内的问号)。下面是代码,谢谢:

$string //a varchar string written in greek and called from the database 
if (strlen($string) > 200) {
    echo substr($string, 0, 200).'...';
}
4

1 回答 1

1

像这样使用多字节函数

mb_internal_encoding( "UTF-8" );

if( mb_strlen( $string ) > 200 ) {
   echo mb_substr( $string, 0, 200 ) . "...";
}

普通函数适用于字节,并且没有您期望的任何字符意识。在 UTF-8 中使用常见英文字符的文本都是每个字符 1 个字节,因此正常功能意外地适用于它们。

于 2012-07-18T08:27:15.000 回答