ホームページ  >  記事  >  php教程  >  php chr() ord()を使用した中国語の文字化け問題の解決策

php chr() ord()を使用した中国語の文字化け問題の解決策

WBOY
WBOYオリジナル
2016-06-13 12:27:091491ブラウズ

コードをコピー コードは次のとおりです。


$lenth = 19; 「長いニュースのタイトルを最初の数単語だけを表示して...に置き換える方法?」
echo strlen($str)<=$lenth ? "; lenth).chr(0)."....");
?>

コードをコピー

/*

@ 別の方法、ord() 関数を使用します:

@ gb2312 エンコーディングに適用:
*/
$str = "長いニュースタイトルの最初の数単語だけを表示して...に置き換える方法は?";
function gb2312_substr($str, $limit) {
$restr = ''; 🎜>for($i=0;$i$restr .= ord($str[$i])>127 ? $str[$i ].$str ? [ $i] : $str[$i];
}
return $restr;
/*
@ 以下は utf-8 エンコードにのみ適用されます。 /
function utf8_substr($str, $limit) {
$restr = '';
for($i=0;$i< $limit-3;$i ) {
$restr .= ord($str[$i])>127 ? $str[$i].$str[ $i].$str[ $i] : $str[$i]; return $restr;
}
//上記の最初の説明: chr(0) は null ではなく、null は何も意味せず、chr(0) の値は 0 です。 16進数で表すと0x00、2進数で表すと00000000となります。chr(0)では何も表示されませんが、文字です。 chr(0)は何も表示されませんが、文字です。漢字が切り捨てられると、エンコード規則に従って、常に他の文字を漢字として後ろに引っ張って解釈する必要があるため、文字化けが発生します。
?>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。