中国語の文字が切り詰められると、エンコード規則に従って、必ずその後ろにある他の文字を引き込んで漢字として解釈する必要があり、これが文字化けの原因です。この機能により、substr の結果の後に chr(0) を追加することで文字化けを防ぐことができます
まずはコードを見てください。は次のとおりです:
<?php $len = 15; $str = "这个新闻或是文章的标题很长,需要只显示前面一些字,后面用...来代替"; echo strlen($str)<=$len ? $str : (substr($str,0,$len).chr(0)."..."); ?>
null は何も意味せず、chr(0) の値は 0 です。 16進数で表現すると0x00、2進数で表現すると00000000になります
chr(0)は何も表示されませんが、文字です。
追記:
UTF-8の場合、UTF-8の中国語文字は文字化けを避けるため、できる限り3の倍数にする必要があります
http ://www.bkjia.com/PHPjc/318755.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/318755.htmlTechArticle まずコードを確認し、次のようにコードをコピーします。 ; $str="このニュースまたは記事のタイトルは非常に長いです。最初の数文字だけを表示して...に置き換える必要があります。";