奇妙!遠慮せずにご協力ください
辛抱強く読んで分析にご協力ください。
まず最初に、ファイルは間違いなく UTF-8 でエンコードされており、ホストも Linux であることを述べておく必要があります。何度もテストしました—
現在使用されているホストは Huaxia Mingwang と Yingwang の 2 つです。
<a href="?str=%E7%88%B1%E6%97%A0%E9%99%90">爱无限</a><br />
<?php<br />
echo $_GET['str'];<br />
?>
ファイルはすべて中国語で「愛は無限大」と表示できます。コード受信は正常に動作します。
しかし、CLP で新しいスペースを購入したとき、奇妙な現象が発生しました。つまり、
<a href="?str=%25E7%2588%25B1%25E6%2597%25A0%25E9%2599%2590">爱无限</a>(这里str参数――要再urlencode一次)<br />
<?php<br />
echo $_GET['str'];<br />
?>
または
<a href="?str=%E7%88%B1%E6%97%A0%E9%99%90">爱无限</a><br />
<?php<br />
echo iconv( 'gb2312','utf-8', $_GET['str']);<br />
?>
「愛は無限です」を中国語で正しく表示するにはどうすればよいですか。
ファイルエンコーディングが既に UTF-8 になっているのに、なぜ変換する必要があるのでしょうか。また、なぜ途中で変更したのでしょうか?
-----最善の解決策---------http ヘッダー情報には
MS-Author-Via: DAV
DAV の意味は、サーバーが推奨するオーサリング方法は WebDAV
です。
WebDAV は Microsoft の http プロトコル拡張機能です
これに基づいて、サーバーは常に Unicode エンコードに従ってマルチバイト テキストを処理すると推測されます
対応する中国語は gbk
-----その他の解決策---------
ブラウザは utf - 8 エンコーディング
d45bed45e260824c1cf5ba0ba57d4df8愛は無限です5db79b134e9f6b82c0b36e0489ee08ed これはどうでしょうか
-----他の解決策---------- - --------
「手伝いに来なくてもいいよ」って言ったから、ちょっと寄ってみます
ヒント ASCII(25)==%
-----その他の解決策---------
表示チェックホストのデフォルトのエンコーディングが utf8
の場合------その他の解決策-----------------------
1. テストに同じブラウザを使用したことは間違いありません。最初の 2 つのホストは正常でしたが、新しいホストは正常ではありませんでした。
2. まだ文字化けしています。iconv('gb2312','utf-8', $_GET['str']);
奇妙なことに、最初に送信された %E7%88%B1%E6%97%A0%E9%99%90 はすでに UTF-8 でエンコードされていますが、受信時にまだトランスコードされているのはなぜですか? ホスト システムに何か設定があるのでしょうか?
------他の解決策----------------------
助けに来ないでください
- -----その他の解決策--------------------
です。
これを確認する方法は、
-----その他の解決策--------
1. echo を使用します。 ini_get('default_charset'); チェック、出力: utf-8
それは正しい。
2. echo mb_detect_encoding($_GET['str']); を使用して (str.php?str=%E7%88%B1%E6%97%A0%E9%99%90) を確認します。出力: CP936
問題が発生します! ――utf-8 ではありません
-----その他の解決策---------
------その他の解決策------------------
わかりました。ホスティング プロバイダーに連絡してください。ホスト プロバイダー調整したのはホストのせいです。投稿終わり!