我目前正在使用substr()函数,该函数适用于用英语编写的字符。但是当我将它应用于用希腊文写的字符时,文本会被切割成一个奇怪的字符(钻石形状内的问号)出现在3个完整停靠点之前(...)。 以下是代码,谢谢:
$string //a varchar string written in greek and called from the database
if (strlen($string) > 200) {
echo substr($string, 0, 200).'...';
}
答案 0 :(得分:1)
像这样使用multibyte functions:
mb_internal_encoding( "UTF-8" );
if( mb_strlen( $string ) > 200 ) {
echo mb_substr( $string, 0, 200 ) . "...";
}
普通函数对字节起作用,并且没有像你期望的那样具有任何字符感知。使用UTF-8中常见英文字符的文本每个字符都是1个字节,因此正常功能会意外地为它们工作。