我目前正在使用 substr() 函数,该函数适用于用英文书写的字符。但是,当我将其应用于用希腊语书写的字符时,文本会在 3 个句号 (...) 之前出现一个奇怪的字符(菱形内的问号)。下面是代码,谢谢:
$string //a varchar string written in greek and called from the database
if (strlen($string) > 200) {
echo substr($string, 0, 200).'...';
}
像这样使用多字节函数:
mb_internal_encoding( "UTF-8" );
if( mb_strlen( $string ) > 200 ) {
echo mb_substr( $string, 0, 200 ) . "...";
}
普通函数适用于字节,并且没有您期望的任何字符意识。在 UTF-8 中使用常见英文字符的文本都是每个字符 1 个字节,因此正常功能意外地适用于它们。