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 文字あたり 1 バイトであるため、通常の機能が誤って機能します。

于 2012-07-18T08:27:15.000 に答える