専門家に来てください。専門家がまったく理解できないコーディングの問題は無数にあります。魔法の文字化けコード
はこの投稿です (http://bbs.csdn.net/topics/390807783?page=1#post-)。 397542169
この投稿には詳しい説明があります。この問題を解いた人は240点を獲得できます。このような小さな問題が 2 ~ 3 日間私を悩ませています。http の下部からデータ パケットを調べましたが、まだ解決できません。
----------------------------------------------- --- ---------------------------------------------------
数え切れないほどのマスターがそれを行っています 不確実な (文字化け) エンコーディングの問題: コードが文字化けするのは、Linux 上の chrome でアクセスした場合のみです。それ以外はすべて正常です。
Windows ではどのブラウザでも問題ありません。
Linux 環境下。クロムアクセスのみ文字化けして表示されます。 (もちろん、Chromeのコードを手動で修正すれば正常に表示できます。)
-------------------------------- --
http://parttime.wengege.com/h/login.html
応答エンコーディングは次のとおりです: gbk,utf-8.
HTTP/1.1 200 OK
サーバー: nginx/1.4.1
日付: 2014 年 6 月 9 日月曜日 15:28:28 GMT
コンテンツ タイプ: text/html; charset=gbk,utf-8
コンテンツの長さ: 1843
Last-Modified: Mon, 09 Jun 2014 15:28:16 GMT
接続: キープアライブ
ETag: "5395d290-733"
受け入れ範囲: バイト
this/login.html の内容を editplus で開いて utf-8 で表示することも何度かしました。
ブラウザはどこで gbk であると判断するのでしょうか?それでコードが文字化けしているのでしょうか?
-----------------------
2 階の changjay からの返信を引用:
に変更してみてください。別のエディター (メモ帳や emeditor など)
いくつかのエディターを変更して保存しました。 w3c は、GBK 文字が含まれているかどうかをチェックします。つまり、utf-8 は gbk として認識されます。なんて不思議なことでしょう。何度も変換して保存しました。
http://parttime.wengege.com/h/test.html
上記の接続は、Chrome でも文字化けします (JS を導入するとコードが文字化けしますが、奇妙なことに他の部分は文字化けしています)。 IE ではまったく正常です。
----------------------------------------------- --- -----
問題は、すべてのファイル (css、php、js) がチェックされ、UTF-8 でエンコードされていることが確認されたことです。
解決できない問題がいくつかあります:
1. 通常の HTML は utf-8 でエンコードされます。 httpレスポンスは実際にはgbk、utf-8なので文字化けしてしまいます。問題は、gbk がどこから来たのかということです。これら 3 つの文字はどこから来たのですか?
私はサイト全体で GBK という 3 つの文字を検索しました。何もない! ! !
2. HTML は時々成功しても、js は依然として文字化けします。インポートされたエンコーディングを utf-8 として指定します。
3. w3c の不正な Web サイトのチェックでは、「成功した識別」コードは依然として「gbk」のままです。その後、w3c の Web サイトは何度もクラッシュしました。
すごいですね、チェックの結果、ある回線に問題があるとのこと。すべての文字を再入力しましたが、同じままです。 thinkphp3.1 のログインは、ディレクトリを変更した後も正常に行われます。ただし、この HTML を thinkphp3.2 で実行すると異常です。重要なのは、HTML と thinkphp は互いに何の関係もないということですか?
------解決策------------------
この問題は私のマシンで完全に再現できます
login.html が BOM なしの utf-8 エンコードで保存されている限り、文字化けします。保存時に BOM は保持され、側面のコード化けはありません。 UltraEdit で何度もテストを繰り返しましたが、結果は同じです。
------解決策----------------------
重要なのは、以前のプロジェクトにこのような問題があるかどうかです。状態!そうでない場合は、コードに問題があります。ある場合は、サーバーの問題、オペレーティング システムの問題、または単にコード入力のエラーである可能性があります (元の SQL ステートメントに間違った文字があり、私はそれを見つけるのに苦労しました)。小さな間違いは許されないと感じたので、実際にはまだコミットしています。)
私の提案は、主にコードか動作環境かを確認することです。
------解決策----------------------
nginx.conf 設定ファイルを確認しますか? GBKってあるの?