目次
ディスカッションへの返信 (解決策)
ホームページ バックエンド開発 PHPチュートリアル エンコーディングの問題: 明らかに UTF-8 ですが、応答が gbk と表示されるのはなぜですか?

エンコーディングの問題: 明らかに UTF-8 ですが、応答が gbk と表示されるのはなぜですか?

Jun 23, 2016 pm 01:55 PM
gbk utf-8 見せる コーディング

http://parttime.wengege.com/h/login.html

応答エンコーディングは実際には: gbk,utf-8 です

HTTP/1.1 200 OK
サーバー: nginx/1.4.1
日付: 月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
接続: keep -alive
ETag: "5395d290-733"
Accept-Ranges: bytes

/login.html のコンテンツは editplus で開かれ、utf-8 として表示され、何度か utf-8 として保存されています。

ブラウザはどこでそれが gbk であると判断しますか?それでコードが文字化けしているのでしょうか?


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

Content-Type: text/html; charset=gbk,utf-8? ? ?
このような文字セット宣言はありますか?
ブラウザはどのようにしてどれが gbk でどれが utf-8 であるかを知るのでしょうか?

メモ帳や emeditor などの別のエディタを試してください

Content-Type: text/html? ? ?
このような文字セット宣言はありますか?
ブラウザはどのようにしてどれが gbk でどれが utf-8 であるかを知るのでしょうか?



これがまさに私が聞きたい質問です。
上記はステートメントではなく、http 応答です。

メモ帳やemeditorなどの別のエディタを試してください


いくつかのエディタを変更して保存しました。 GBKのキャラクターが入っています。つまり、utf-8 は gbk として認識されます。おかしいですね。
私は 10 年間コーディングを勉強しています。コーディングに問題があったことはありません。
上記の問題は Linux でのみ発生し、Windows では再現できません。

さらに、別のテストディレクトリに変更しました。内容はそのまま表示されます。

ステータス コードを除いて、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
など全て設定可能

サーバーのデフォルト設定だと思います

全く分かりませんどこに問題があるのか​​調べてみましょう

同じサーバー上に正常に表示できるコードがない場合は、設定に問題があるはずです。
正常に表示できるコードがある場合は、正常なコードをこのファイルと同じ内容に変更してください。 異常であれば文章を変更すると問題が発生します
これに変更したテキストであればまだ表示可能です。通常、2 つのファイルを比較するには 16 進ビューアを使用します

これはおそらくサーバーのデフォルト設定です

何が問題なのか本当にわかりません

同じファイル上で正常に表示できるコードがない場合サーバーの場合、設定に問題があるはずです。
正常に表示できるコードがある場合は、正常なコードをこのファイルと同じ内容に変更してください。 異常であれば文章を変更すると問題が発生します
これに変更したテキストであればまだ表示可能です。通常、2 つのファイルを比較するには 16 進ビューアを使用します


私のサーバー上の他のコードには問題ありません。
さらに、
このファイルをディレクトリに移動したところ、正常にアクセスできるようになりました。 。 。 。
http://parttime.wengege.com/h/test.html

上記のリンクもChrome下では文字化けします(JSを導入すると文字化け、不思議なことに他の部分も文字化けします)。 IE ではまったく正常です。

nginx の設定に問題がありますか? Apacheを変更してテストしますか?




結論は自明です

ログインテンプレートファイルはutf-8でエンコードされていますが、phpプログラムのヘッダーステートメントまたはサーバーのデフォルト設定によって出力されるレスポンスヘッダーはgbk、utf-8、およびwebkitですとChromeでは文字化けコードが表示されますが、IEは正常です

テストテンプレートファイル自体はgb2312でエンコードされており、レスポンスヘッダーはgbk、utf-8のままで、9階の状況が表示されます

そのWebkitとChrome はエンコーディングを認識し、応答ヘッダーは DOM 内のヘッダー ステートメントより優先されます。IE はその逆です
ホストのサーバー上の js ファイルの応答ヘッダーの文字セットは gbk、utf-8 であることがわかりました。サーバーのデフォルト出力に問題がある可能性があります

上記の返信を読んで、私は???を思いつきました。

ディレクトリに .htaccess が設定されていない場合、デフォルトの文字セットが .htaccess に設定されている場合はどうなりますか?




結論は自明です

はい、GBK はどこから来たのでしょうか?重要なのは、GBK がどこから来たのかということです。モデレータ。ハニー。方向が間違っています。また、GBK はどこから来たのか、とも考えています。
GBK で問題が発生することはわかっています。 GBK は結果であり、始まりではありません。

上記の返信を読んで、一つのことが頭に浮かびました。
ディレクトリに .htaccess が設定されていない場合、デフォルトの文字セットが .htaccess に設定されている場合はどうなりますか?


昨日確認しましたが、何も見つかりませんでした。 htaccess ファイルにエンコードの問題があります。

ログインテンプレートファイルはutf-8でエンコードされていますが、PHPプログラムのヘッダーステートメントまたはサーバーのデフォルト設定によって出力される応答ヘッダーはgbk、utf-8であるため、Webkitとchromeの文字化けが発生しますが、IEは正常です
テストテンプレートファイル自体は gb2312 エンコーディング、レスポンスヘッダーは gbk、utf-8 のままで、9 階の状況が表示されます

おそらく webkit と chrome がエンコーディングを認識しており、レスポンスヘッダーが優先されると思われますDOM の header ステートメント、IE はその逆です
投稿者のサーバーでそれを見ました。js ファイルの応答ヘッダーの文字セットはすべて gbk、utf-8 です。サーバーのデフォルトの出力に問題があるはずです


どこにもヘッダーの問題は見つかりませんでした。同時にログインテンプレートはありません。これはテンプレートではなく、単なる通常の HTML です。ご清聴ありがとうございました。

.htaccess にはありません
AddDefaultCharset gbk
AddDefaultCharset utf-8
結果は Content-Type: text/html; charset=utf-8 です
つまり、最後の命令のみが有効です

ただし、
AddDefaultCharset gbk の場合、 ut f -8
次に、Content-Type: text/html; charset=gbk,utf-8

したがって、問題は再び戻りますが、文字セット宣言は組み込みではなく設定されています




上記に応じて、何かが思い浮かびます。

ディレクトリに .htaccess が設定されていない場合、デフォルトの文字セットが .htaccess に設定されている場合はどうなりますか?

ここで問題は、すべてのファイル (css、php、js) がチェックされ、utf-8 でエンコードされていることが確認されたことです。 いくつかの問題があります:














。 httpレスポンスは実際にはgbk、utf-8なので文字化けしてしまいます。問題は、gbk がどこから来たのかということです。これら 3 つの文字はどこから来たのでしょうか?
3 つの文字 GBK をサイト全体で検索しました。何もない! ! ! M 2. HTML はたまに成功しても、JS の導入は依然として文字化けします。コーディングの導入を UTF-8 として指定します。

3. W3C の腐った Web サイトのチェックを通じて、「成功した識別」コーディングはまだ「GBK」です。その後、W3C の Web サイトは何度もクラッシュしました。 , 奇は本当に素晴らしいです。検査の結果、問題があるとのことです。すべての文字を再入力しましたが、同じままです。ファイルのディレクトリを変更した後でも、thinkphp3.1 のログインは正常に行われます。ただし、この HTML を thinkphp3.2 で実行すると異常です。重要なのは、HTML と thinkphp は互いに何の関係もないということですか?

js ファイルには Content-Type: text/html; charset=gbk,utf-8 もあります

明らかに、これは Web サーバー設定ファイルの中にあります

サーバー内で gbk という単語を検索すると見つかるはずです設定ファイル

本当に見つけたくない場合は、.htaccess に
AddDefaultCharset utf-8 を追加してください

これにより、元の設定が上書きされます

🎜 保存するときに、no bom を選択して、もう一度お試しください。 HTML に bom ヘッダーがあることがわかりました 🎜 🎜 新しい発見: 実際にブラウザのエンコード メニューがグレー表示になるギミックがあるのでしょうか。 🎜 🎜 🎜 ヘッダーの問題はどこにも見つかりませんでした。同時にログインテンプレートはありません。これはテンプレートではなく、単なる通常の HTML です。ご清聴ありがとうございました。 🎜 🎜 HTMLとテンプレートも同様です〜 IEが常に安定していて安定していること(応答ヘッダーとDOMエンコード宣言の優先順位が異なる)と、テスト本体が乱雑ではないこと(おそらく)の2つの理由が考えられます。 test.html ファイルは gbk でエンコードされており、login.html は utf-8 です) さらに、別の test ディレクトリに変更すると、コンテンツはそのまま表示されます。ファイルが gbk エンコードになったのはそれが原因でしょうか?レスポンスヘッダーに gbk が含まれる最も重要な理由については、私の知識の範囲を超えていますので、注意して学習してください 🎜 🎜 問題の原因は、nginx がこれを設定するときに charset gbk、utf-8 を使用することが判明しました。 Webサイト。 gbkを削除すれば大丈夫です。これでコード化けは解消されました。 🎜

この問題の原因は、この Web サイトを構成するときに nginx が文字セット gbk,utf-8 を使用したことが判明しました。 gbkを削除すれば大丈夫です。これでコード化けは解消されました。



最初から10階で構成の問題が提起されていましたが、存在感の薄さは無視されました

さらに、別のテストディレクトリに変更しました。内容はそのまま表示されます。



が批判されました。

現在のバージョンと番号はすべて古いです。デフォルトの文字セットは gbk、utf8 であるためです。

あなたが言及した nginx 設定は大きすぎます。私が言及している構成は、この仮想ホストの構成です。このnginxには多くのWebサイトがあり、他に問題はありません。


問題の原因は、この Web サイトを構成するときに nginx が文字セット gbk,utf-8 を使用したことが判明しました。 gbkを削除すれば大丈夫です。これでコード化けは解消されました。



最初から10階で設定の問題が提起されていましたが、存在感の薄さは無視されました


さらに、他のテストディレクトリに変更しました。内容はそのまま表示されます。



が批判されました。

現在のバージョンと番号はすべて古いです。デフォルトの文字セットは gbk, utf8 なので、

ディレクトリを変更した後、BOM ヘッダーを追加する方法がわかりませんが、これで OK です。

親愛なる、あなたが言及した nginx 構成は大きすぎます。私が言及している構成は、この仮想ホストの構成です。このnginxには多くのWebサイトがあり、他に問題はありません。



他のWebサイトは大丈夫です。 12階で、jsファイルのレスポンスヘッダーがgbk、utf-8で、ターゲットを即座にロックできると述べました〜
あなたは長い間phpスクリプトとBOMを勉強してきました。初心者が正しく理解できるのは珍しいです
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 の検索からニュースやトレンド コンテンツを削除する方法 Windows 11 の検索からニュースやトレンド コンテンツを削除する方法 Oct 16, 2023 pm 08:13 PM

Windows 11 で検索フィールドをクリックすると、検索インターフェイスが自動的に開きます。左側に最近のプログラムのリストが表示され、右側に Web コンテンツが表示されます。 Microsoft はそこにニュースやトレンドのコンテンツを表示します。今日のチェックでは、Bing の新しい DALL-E3 画像生成機能、「Chat Dragons with Bing」オファー、ドラゴンに関する詳細情報、Web セクションのトップ ニュース、ゲームの推奨事項、およびトレンド検索セクションを宣伝しています。項目のリスト全体は、コンピューター上でのアクティビティとは無関係です。一部のユーザーはニュースを表示できることに感謝しているかもしれませんが、これらはすべて他の場所で豊富に利用できます。直接的または間接的にそれをプロモーションまたは広告として分類する人もいます。 Microsoft はインターフェイスを使用して自社のコンテンツを宣伝しています。

Windows 11 ユーザー ガイド: 広告ポップアップを無効にする方法 Windows 11 ユーザー ガイド: 広告ポップアップを無効にする方法 Sep 22, 2023 pm 07:21 PM

Microsoft の Windows 11 オペレーティング システムでは、通知システムを使用してコンピュータ上に提案がポップアップとして定期的に表示される場合があります。この提案システムは、もともと Windows 11 のワークフローを改善するためのヒントや提案をユーザーに提供するために設計されましたが、現在ではほぼ完全に Microsoft のサービスと製品を宣伝する広告システムに変わりました。提案ポップアップでは、Microsoft 365 サブスクリプションをユーザーに宣伝したり、Android スマートフォンをデバイスにリンクしたり、バックアップ ソリューションをセットアップしたりすることを提案する場合があります。これらのポップアップが煩わしい場合は、システムを調整して完全に無効にすることができます。次のガイドでは、Microsoft の Windows 11 オペレーティング システムを実行しているデバイスでポップアップを無効にするための推奨事項を示します。

デスクトップレイアウトがロックされる理由と解決策 デスクトップレイアウトがロックされる理由と解決策 Feb 19, 2024 pm 06:08 PM

デスクトップ レイアウトがロックされるとどうなりますか? コンピューターを使用しているときに、デスクトップ レイアウトがロックされる状況に遭遇することがあります。この問題は、デスクトップアイコンの位置を自由に調整したり、デスクトップの背景を変更したりすることができないことを意味します。では、デスクトップ レイアウトがロックされていると表示される場合、具体的には何が起こっているのでしょうか? 1. デスクトップ レイアウトとロック機能を理解する まず、デスクトップ レイアウトとデスクトップ ロックの 2 つの概念を理解する必要があります。デスクトップ レイアウトとは、ショートカット、フォルダー、ウィジェットなど、デスクトップ上のさまざまな要素の配置を指します。私たちは自由になれる

ナレッジ グラフ: 大規模モデルの理想的なパートナー ナレッジ グラフ: 大規模モデルの理想的なパートナー Jan 29, 2024 am 09:21 AM

大規模言語モデル (LLM) は、滑らかで一貫したテキストを生成する機能を備えており、人工知能の会話や創造的な文章などの分野に新たな可能性をもたらします。ただし、LLM にはいくつかの重要な制限もあります。まず、彼らの知識はトレーニング データから認識されたパターンに限定されており、世界に対する真の理解が欠けています。第 2 に、推論スキルには限界があり、論理的な推論を行ったり、複数のデータ ソースからの事実を融合したりすることができません。より複雑で自由回答の質問に直面すると、LLM の答えは「幻想」として知られる不条理または矛盾したものになる場合があります。したがって、LLM はいくつかの面では非常に便利ですが、複雑な問題や現実世界の状況を扱う場合には、依然として一定の制限があります。これらのギャップを埋めるために、検索拡張生成 (RAG) システムが近年登場しました。

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語エンコード分析: UTF-8 と GBK の比較 Mar 28, 2024 pm 01:54 PM

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語では、文字列エンコードの処理は一般的なタスクの 1 つです。その中でも、UTF-8 と GBK の 2 つはよく使用される文字エンコード方式です。この記事では、UTF-8 と GBK を詳細に比較し、その違いと使用法について説明し、具体的なコード例を添付します。 1. UTF-8 と GBK の概要 UTF-8: UTF-8 は、世界中のほぼすべての言語の文字を表現できる可変長 Unicode エンコード方式です。 UTF-8

いくつかの一般的なエンコード方法 いくつかの一般的なエンコード方法 Oct 24, 2023 am 10:09 AM

一般的なエンコード方法には、ASCII エンコード、Unicode エンコード、UTF-8 エンコード、UTF-16 エンコード、GBK エンコードなどがあります。詳細な紹介: 1. ASCII エンコードは、英語の文字、数字、句読点、制御文字などを含む 128 文字を表すために 7 ビット 2 進数を使用する、最も初期の文字エンコード標準です; 2. Unicode エンコードは、文字を表すために使用される方法です。世界中のすべての文字 各文字に固有のデジタル コード ポイントを割り当てる文字の標準的なエンコード方式、3. UTF-8 エンコードなど。

リモートデスクトップ接続で相手のタスクバーを表示させる方法 リモートデスクトップ接続で相手のタスクバーを表示させる方法 Jan 03, 2024 pm 12:49 PM

リモートデスクトップ接続を利用しているユーザーは多いですが、利用中に相手のタスクバーが表示されないなどのちょっとしたトラブルに遭遇する人も多いと思いますが、実は相手の設定の問題である可能性が高いです。以下の解決策。リモートデスクトップ接続時に相手のタスクバーを表示する方法: 1. まず「設定」をクリックします。 2. 次に「個人用設定」を開きます。 3. 次に、左側の「タスクバー」を選択します。 4. 画像の「タスクバーを非表示にする」オプションをオフにします。

Linux で現在のディレクトリを確認するにはどうすればよいですか? Linux で現在のディレクトリを確認するにはどうすればよいですか? Feb 23, 2024 pm 05:54 PM

Linux システムでは、pwd コマンドを使用して現在のパスを表示できます。 pwd コマンドは PrintWorkingDirectory の略で、現在の作業ディレクトリのパスを表示するために使用されます。ターミナルに次のコマンドを入力して、現在のパスを表示します。 pwd このコマンドを実行すると、ターミナルには現在の作業ディレクトリのフル パス (/home/user/Documents など) が表示されます。さらに、他のオプションを使用して pwd コマンドの機能を拡張することもできます。たとえば、-P オプションを使用すると、次のように表示できます。

See all articles