ホームページ  >  記事  >  バックエンド開発  >  一部のページが文字化けするのはなぜですか?また、一部のページは文字化けするのに文字化けしないのはなぜですか?少しめまいがする

一部のページが文字化けするのはなぜですか?また、一部のページは文字化けするのに文字化けしないのはなぜですか?少しめまいがする

WBOY
WBOYオリジナル
2016-06-23 13:40:141185ブラウズ

以下の 2 つのページをご覧ください: http://www.qgren.com/qigong/gongfa/15_30.shtml
要約は文字化けしています。

このページをもう一度見てください: http://www.qgren.com/qigong/gongfa/15_28.shtml
概要は文字化けしていません、正常です。

ウェブサイトでは、一部のページは正常ですが、一部のページの概要が文字化けしています。少しめまいがします。
プログラムは dedecms、gbk バージョンです。私の Web ページのテンプレートも gbk です。

サマリーを呼び出すコードは次のとおりです:
{dede:field.description runphp='yes'}
if(@mea8093152e673feb7aba1828c43532094'' )@me = '
dad938afde24694804b0f08681da2aae:'.@me.'94b3e26ee717c64999d7867364b1b4a3
{/dede:field.description}

私の疑問に誰が答えられるかわかりません、なぜこのようなことが起こっているのですか?


ディスカッションへの返信(解決策)

Wuyumo と Wuyuyu の後には特殊な文字があります。
?チェックしてください。

スペースが追加されました。削除するだけです
メタにも同じ文字化けしたコードがあることがわかりましたので、メタから取得しました
文字化けしたコード: アナンダ。戒律違反があります。彼は心の解放と知恵の解放をありのままに知っています。彼が犯した戒律の違反には、消滅も消滅も欲望も残りません。 0⒛選択 锪毷巳淳? H松一瞥咳巳愿
復元: アナンダ。戒律違反があります。彼は心の解放と知恵の解放をありのままに知っています。彼が戒律を破ったとき、滅びの残りはなく、欲望の残りもありません。この人は勝利し、決して後退しないことを知っておくべきです。あの人が点を取って勝利したと言いました。如来ではありません。この 2 つの間にはスペースがあります。誰が知ることができますか。それが理由です。アナンダ。みんなのためにお金を集めるのではなく、みんなのためにお金を集めるのが得意で、ボーの人たちはみんなのためにお金を集めます

目に見えるものはいわゆる空間ですが、それはある漢字の変化体である可能性もあります
テキストを確認して、違いを教えてください

スペースが追加されています。削除するだけです
メタにも同じ文字化けしたコードがあることがわかりましたので、メタから取得しました

$t = get_meta_tags('http://www.qgren.com/qigong/gongfa/15_30.shtml');echo '乱码:', $s = $t['description'], PHP_EOL;echo '还原:', str_replace(' ', '', $s);
文字化けコード: Ananda。戒律違反があります。彼は心の解放と知恵の解放をありのままに知っています。彼が犯した戒律の違反には、消滅も消滅も欲望も残りません。 0⒛選択してください 锪毷巳淳? H松 咳 巳硕? ごめんなさい: アナンダ。戒律違反があります。彼は心の解放と知恵の解放をありのままに知っています。彼が戒律を破ったとき、滅びの残りはなく、欲望の残りもありません。この人は勝利し、決して後退しないことを知っておくべきです。あの人が点を取って勝利したと言いました。如来ではありません。この 2 つの間にはスペースがあります。誰が知ることができますか。それが理由です。アナンダ。誰にでも配慮して他人に貪欲にならないでください


テキストの違い:
還元: アナンダ。戒律違反があります。彼は心の解放と知恵の解放をありのままに知っています。彼が犯したいかなる戒律違反の痕跡も、破壊の痕跡も、欲望の痕跡も残らないであろう、この人は前進し、決して後退しない人物であることを知るべきである。あの人が点を取って勝利したと言いました。如来ではありません。この 2 つの間にはスペースがあります。誰が知ることができますか。それが理由です。アナンダ。皆のことを考えるのではなく、皆のことを考えるのが得意で、皆のことを考えてください。戒律違反があります。彼は心の解放と知恵の解放をありのままに知っています。彼には自分が犯した罪の名残も、欲望の名残も、欲望の名残もない。人は勝ったときは決して退かないことを知っておくべきです。あの人が点を取って勝利したと言いました。如来ではありません。この 2 つの間にはスペースがあります。誰が知ることができますか。それが理由です。アナンダ。みんなからそれを奪おうとしないでください。人々はお金を集めるのが得意ですが、誰もが病気になります。誰もが皆のために資金を集めます

常に 1 つの単語の後にピリオドが続く共通のパターンを見つけます。
モデレーター、
を見てください

Wuyumo と Wuyuyu の後には特別な文字があります。 ?チェックしてください。

Wuyumo と Wuyuyu の背後に特殊文字はありません。ドキュメントを参照してください。その後ろにENDがあります。
滅びるべきものは何も残っておらず、消え去るべきものは何も残っておらず、枯渇するために残っているものは何もありません。人は勝ったときは決して退かないことを知っておくべきです。


$t = get_meta_tags('http://www.qgren.com/qigong/gongfa/15_30.shtml');echo '乱码:', $s = $t['description'], PHP_EOL;echo '还原:', str_replace(' ', '', $s);
$t = get_meta_tags('http://www.qgren.com/qigong/gongfa/15_30.shtml');$s = $t['description'];$n = strpos($s, '欲')+2;$t = substr($s, $n);echo bin2hex('尽。当'), PHP_EOL;echo bin2hex($t), PHP_EOL;$n = strpos($s, '而')+2;$t = substr($s, $n);echo bin2hex('取。人'), PHP_EOL;echo bin2hex($t), PHP_EOL;echo str_replace(' ', "\xa1\xa1", $s), PHP_EOL;echo bin2hex(' '); //再看看全角空格

明らかに、テキストを処理するときに全角スペースを半角スペースに置き換えています これが問題の原因です。



bea1a1a3b5b1be20a3b5b1d6aacac7c8cbcaa4bdf8b2bbcdcba1a3ced2cbb5b1cbc8cbceaacaa4bdf8b7d6a1a3d7d4b7c7c8e7c0b4a1a3b4cbb6fed3d0bce4a1a3cbadc4dccfa4d6aaa1a3cac7b9caa1a3b0a2c4d1a1a3c4aab3efc1bfc8cbc8cbb6f8c820a3c8cbc9c6b3efc1bfc8cbc8cbb6f8b220a3c8cbb3efc1bfc8cbc8cba1c8a1a1a3c8cbc820a3c8cbc9c6b3efc1bfc8cbc8cbb6f8b220a3c8cbb3efc1bfc8cbc8cba1阿难。有犯戒。彼于心解脱、慧解脱如实知。彼于所起犯戒无余灭、无余没、无余欲尽。当知是人胜进不退。我说彼人为胜进分。自非如来。此二有间。谁能悉知。是故。阿难。莫筹量人人而取。人善筹量人人而病。人筹量人人?a1a1
$t = get_meta_tags('http://www.qgren.com/qigong/gongfa/15_30.shtml');$s = $t['description'];$n = strpos($s, '欲')+2;$t = substr($s, $n);echo bin2hex('尽。当'), PHP_EOL;echo bin2hex($t), PHP_EOL;$n = strpos($s, '而')+2;$t = substr($s, $n);echo bin2hex('取。人'), PHP_EOL;echo bin2hex($t), PHP_EOL;echo str_replace(' ', "\xa1\xa1", $s), PHP_EOL;echo bin2hex(' '); //再看看全角空格

明らかに、テキストを処理するときに全角スペースを半角スペースに置き換えています

これが問題の根源です。



まだ少し文字化けしていますが、みんながみんなのために資金を集めていますか?もう一つ奇妙なことがあります。


あなたのコードを試してみましたが、私が混乱していたのは
echo str_replace(' ', "xa1xa1", $s); です。
この奇妙なことは、次のとおりです。現れる。
逆に、コードなどを後から出力すると、出力 PHP_EOL、? が表示されます。
本当に変です
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。