ホームページ >バックエンド開発 >PHPチュートリアル >エンコーディング関連の問題: 明らかに UTF-8 ですが、応答が gbk のように見えるのはなぜですか?
エンコーディングの問題: 明らかに UTF-8 ですが、応答が gbk と表示されるのはなぜですか?
http://parttime.wengege.com/h/login.html
応答エンコーディングは次のとおりです: gbk,utf-8.
HTTP/1.1 200 OK
サーバー: nginx/1.4.1
Date: Mon, 09 Jun 2014 15:28:28 GMT
Content-Type: text/html; charset=gbk,utf-8
Content-Length: 1843
Last-Modified: Mon, 09 Jun 2014 15:28:16 GMT
接続: キープアライブ
ETag: "5395d290-733"
受け入れ範囲: バイト
this/ login.html の内容は editplus で開いて utf-8 として表示され、また utf-8 として保存されることも何度かあります。
ブラウザはどこで gbk であると判断するのでしょうか?それでコードが文字化けしているのでしょうか?
-----解決策---------
たとえば、別のエディタに変更してみてください。 、メモ帳、emeditor など。
------解決策---------
http ヘッダーを除くステータス コード、内容はすべて宣言です
header('Content-type: text/html;charset=gbk,utf-8');
HTTP を選択すると、Content-Type が表示されます。 text/html;charset=gbk,utf-8
php.iniのdefault_charset
httpd.confのdefault_charset
などは全て設定可能
--- --- -解決策------------------
おそらくサーバーのデフォルト設定です
何が問題なのか全く分かりませんis
同じサーバー上に正常に表示できるコードがない場合は、設定の問題のはずです。
正常に表示できるコードがある場合は、正常なコードをこのファイルと同じ内容に変更してください。異常な場合は、変更された文章が問題となります。
テキストが変更された場合。これはまだ正常に表示できます。16 進ビューアを使用して 2 つのファイルを比較してください
-----解決策--------------------- -----------
nginx の設定に問題がありますか? Apacheを変更してテストしますか?
------解決策---------
上記の返信を読んで、疑問が浮かびました。
このディレクトリに .htaccess が設定されており、.htaccess にデフォルトの文字セットが設定されていますか?
------解決策----------------------
は
.htaccess AddDefaultCharset gbk
AddDefaultCharset utf-8
結果は Content-Type: text/html; charset=utf-8
つまり、最後のコマンドのみが有効です
逆に, if
AddDefaultCharset gbk,utf-8
すると、Content-Type: text/html; charset=gbk,utf-8
となり、問題は再び文字セット宣言になります。組み込みではなく設定されています