マスターの皆さん、来てください。マスターがまったく理解できないエンコードの問題が無数にあります。魔法の文字化けコード。
それがこの投稿です。 http://bbs.csdn.net/topics/390807783?page=1#post-397542169
この投稿には詳細な説明があります。この問題を解いた人は240点を獲得できます。このような小さな問題が 2 ~ 3 日間私を悩ませています。http の下部からデータ パケットを調べましたが、まだ解決できません。
----------------------------------------------- - ----------------------------------------
数え切れないほどの専門家が理解できないit out (garbled code) ) エンコードの問題: Linux 上の Chrome でアクセスした場合にのみコードが文字化けします。それ以外はすべて正常です。
Windows 上のどのブラウザでも問題ありません。
Linux 環境下。クロムアクセスのみ文字化けして表示されます。 (もちろん、Chromeのコードを手動で修正すれば正常に表示できます。)
----------------------------------
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 であると判断しますか?それでコードが文字化けしているのでしょうか?
-----------------------
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 つの文字はどこから来たのでしょうか?
3 つの文字 GBK をサイト全体で検索しました。何もない! ! !
2. HTML は時々成功しても、JS は依然として文字化けします。インポートされたエンコーディングを utf-8 として指定します。
3. w3c の不正な Web サイトのチェックを通じて、「成功した識別」コードは依然として「gbk」のままです。その後、w3c の Web サイトは何度もクラッシュしました。
すごいですね、チェックの結果、ある回線に問題があることが分かりました。すべての文字を再入力しましたが、同じままです。ファイルのディレクトリを変更した後でも、thinkphp3.1 のログインは正常に行われます。ただし、この HTML を thinkphp3.2 で実行すると異常です。重要なのは、HTML と thinkphp は互いに何の関係もないということです。
ディスカッションに返信(解決策)
おそらく、Apache の設定に問題があります。Apache の設定に文字セット設定があることを思い出してください
またまたですか?
Windows 上のどのブラウザでも問題ありません。 これは恣意的すぎます!
これは XP 360 速度ブラウザのスクリーンショットです
IE に問題がないことは否定しません
これは、IE には強力な文字セット認識機能があり、Content-Type: text の影響を完全に無視できるためです/html; charset
これが Netscape が崩壊した理由の 1 つでした。
そして、Netscape 崩壊時にリリースされたブラウザ コード (10 MB 以上の C プログラム) に基づいて構築されたさまざまなブラウザは、Microsoft の特許のため、この問題を解決できません
もちろん、これは議論の順序からの余談です
charset=gbk がある場所を見つける必要があります
ツール ソフトウェアをあまり信頼しないでください。手動で 1 行ずつ検索するのが最善です。結局のところ、構成ファイルはほんのわずかしかありません
しかし、この状況を引き起こしたいくつかのプラグインをインストールした可能性は排除されません
この問題は私のローカルマシンでも完全に再現されます
login.html が保存されている限りas utf-8 エンコーディングに BOM がない場合、文字化けするはずです。保存時に BOM は保持され、側面のコード化けはありません。 UltraEdit で何度もテストを繰り返しましたが、結果は同じです。
重要なのは、これまでのプロジェクトでこのようなことが起こったかどうかです。そうでない場合は、コードに問題があります。ある場合は、サーバーの問題、オペレーティング システムの問題、または単にコード入力のエラーである可能性があります (元の SQL ステートメントに間違った文字があり、私はそれを見つけるのに苦労しました)。小さな間違いを犯すことはできないと感じたので、実際にはまだコミットしています。
私の提案は、主にコードか動作環境かを確認することです。
この問題は私のマシンで完全に再現されます
login.html が BOM なしの utf-8 エンコーディングとして保存されている限り、文字化けします。保存時に BOM は保持され、側面のコード化けはありません。 UltraEdit で何度もテストを繰り返しましたが、結果は同じです。
BOM を保持する方法 ありがとうございます
nginx.conf 設定ファイルを確認してください? GBKってあるの?
またここですか?
Windows 上のどのブラウザでも問題ありません。 これは恣意的すぎます!
これはXP 360スピードブラウザのスクリーンショットです
xuが大きいので、投稿者はWindows上のサーバーを参照していると思います サーバーを変更しても大丈夫なので、おそらくnginxの構成またはモジュールが原因です。邪魔ですよね?
この問題は私のローカルマシンでも完全に再現されます
login.html が BOM なしの utf-8 エンコードで保存されている限り、文字化けします。保存時に BOM は保持され、側面のコード化けはありません。 UltraEdit で何度もテストを繰り返しましたが、結果は同じです。
BOM を保持する方法 ありがとうございます
UltraEdit を使用して名前を付けて保存し、保持する形式として「UTF-8」を選択し、保持しない場合は「UTF-8 - No BOM」を選択します。
他の人の判断を妨げないでください
うわー
明らかに
3c21444f435459504520 には BOM ヘッダーがありません
efbbbf3c21444f435459 には BOM ヘッダーがあります
ブラウザの場合、BOM ヘッダーはせいぜい表示に影響しますstyle 、文字化けを起こさない
$url = 'http://parttime.wengege.com/Public/js/search.js';
$s = file_get_contents($url, false, null, 0, 10);
echo bin2hex($s); ); / /2f2fe6a0b9e68daee7b1
/Public/js/search.js には BOM ヘッダーがありません
ブラウザの場合、BOM ヘッダーは文字化けを引き起こすことなく表示スタイルに影響します
言うまでもなく、サーバーは gbk を返します。 utf8 などのエンコード用の BOM ヘッダーがない場合、gbk または utf8 として表示する必要がありますか?明らかにgbkに従って表示されます。
またここですか?
Windows 上のどのブラウザでも問題ありません。 これは恣意的すぎます!
これは XP 360 速度ブラウザのスクリーンショットです
IE に問題がないことは否定しません
これは、IE には強力な文字セット認識機能があり、Content-Type: text の影響を完全に無視できるためです/html; charset
これが Netscape が崩壊した理由の 1 つでした。
そして、Netscape 崩壊時にリリースされたブラウザ コード (10 MB 以上の C プログラム) に基づいて構築されたさまざまなブラウザは、Microsoft の特許のため、この問題を解決できません
もちろん、これは議論の順序からの余談です
charset=gbk がある場所を見つける必要があります
ツール ソフトウェアをあまり信頼しないでください。手動で 1 行ずつ検索するのが最善です。結局のところ、設定ファイルはほんのわずかしかありません
しかし、インストールしたプラグインがこの状況を引き起こしたという可能性は排除されません
モデレーターありがとうございます。
つまり、Windows でコードを実行しても問題は発生しないということです。
表示されているものは Linux で実行されているため、何か問題があります。 ob_start();
header("Content-Type: text/html; charset=gbk,utf8");
ob_flush();
名前を付けて保存BOMなしとBOMありでは文字化けして正常になります
nginx.conf設定ファイルを確認してください? GBKってあるの?
またここですか?
Windows 上のどのブラウザでも問題ありません。
これは恣意的すぎます!
これはXP 360スピードブラウザのスクリーンショットです
xuが大きいので、投稿者はWindows上のサーバーを参照していると思います サーバーを変更しても大丈夫なので、おそらくnginxの構成またはモジュールが原因です。邪魔ですよね?
はい、この兄弟は正解です、司会者、彼は夜更かししすぎました、彼のレベルは非常に高いですが、彼は最近私の質問に答えたとき、彼は私の言ったこととまったく逆のことを理解していました。 。
私は何度も応答だと言いましたが、徐さんはそれは要求だと言い、たくさんの例を示してくれました。 .... Windows サーバーのことを指します。窓の下からアクセスされていたとのこと。 gbkは自動生成されると言いました。彼は、gbkを手動で設定したと言いました。 ……私とは正反対ですね。
おそらく、Apache の設定に問題があることを思い出してください
同じ ngnix 設定では、他のプロジェクトは問題なく、コードはほぼ同じです。
テスト後、utf-8 + bom として保存すると、この問題を解決できます。しかし、なぜ?誰か説明してもらえますか?
header("Content-Type: text/html; charset=gbk,utf8");
はレスポンスのヘッダーです
get_headers(url)
取得した Content-Type: text/html;はサーバー応答です
いつリクエストを言いましたか?
対応するヘッダーを設定していませんか?それを設定ファイルに入れて自動的に送信します
私はまったく混乱していませんが、あなたは忙しすぎます。
サーバーを変更しても正常になります。これは、問題のサーバーの構成に問題があることを意味します。
重要なのは、これまでのプロジェクトでこのようなことが起こったかどうかです。そうでない場合は、コードに問題があります。ある場合は、サーバーの問題、オペレーティング システムの問題、または単にコード入力のエラーである可能性があります (元の SQL ステートメントに間違った文字があり、私はそれを見つけるのに苦労しました)。実際、私はまだそれを犯していました。
私の提案は、主にコードか動作環境かを確認することです。
この問題は私のマシンで完全に再現されます
login.html が BOM なしの utf-8 エンコードで保存されている限り、文字化けします。保存時に BOM は保持され、側面のコード化けはありません。 UltraEdit で何度もテストを繰り返しましたが、結果は同じです。
はい、お兄さん、結果が分かりました。しかし、なぜ?これも知りたい質問です。
実際、誰もその理由を見つけておらず、いくつかの現象が観察されただけです
Content-Type: text/html; charset= gbk,utf8
この gbk が本当の理由ですが、そのソースを見つけたくありません
xuzuning モデレーターの正解!
問題の原因は、この Web サイトを構成するときに nginx が文字セット gbk,utf-8 を使用したことが判明しました。 gbkを削除すれば大丈夫です。これでコード化けは解消されました。
thinkphp Web サイトのネチズンが私と同じ問題に遭遇しました。問題を解決するには、サーバー上の構成ファイルを確認するよう通知します。
header("Content-Type: text/html; charset=gbk,utf8");
はレスポンスのヘッダーです
get_headers(url)
取得した Content-Type: text/html; utf8
サーバーの応答です
いつリクエストを言いましたか?
対応するヘッダーを設定していませんか?それを設定ファイルに入れて自動的に送信します
私はまったく混乱していませんが、あなたは忙しすぎます。
サーバーを変更しても正常になります。これは、問題のサーバーの構成に問題があることを意味します。
ありがとうございます! ! !
もちろん、モデレータは私にサーバー上の設定ファイルを見るように注意しました。徐達、もっと早く思い出させてくれればよかったのに。
ngix charset が設定されている場合、またはフォルダーに配置されている場合はどうなりますか? ??folder?? も同じ ?charset を使用します。そのため、以前はフロントフォルダーに .htaccess ファイルがあると思っていました。このため、デフォルトの文字セット設定が見つかりませんでした。
ファイルは確かに UTF8 で保存されているとのことですが、各ページの mate タグでブラウジングエンコーディングを設定できるようです
それとも背景コード GBK によって文字が出力されているのでしょうか?
cmsを使用していますか? gbkからutf8に変換されているのでしょうか
実はphpに詳しくないので推測ですが

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Word のページ番号が文字化けする場合の解決策: 1. Word 文書を開き、左上隅にある [ファイル] オプションをクリックします; 2. [詳細] オプションを選択し、[オプション] ボタンをクリックします; 3. [詳細] を選択します。 Word のオプション内; 4. . 「文書の内容を表示」の「フィールド値の代わりにフィールドコードを表示」を見つけて、先頭のチェックを外し、「OK」をクリックしてホームページに戻ります。

Linux の中国語の文字化け問題は、中国語の文字セットとエンコーディングを使用する場合によく見られる問題です。文字化けは、ファイルのエンコード設定が正しくない、システム ロケールがインストールまたは設定されていない、端末の表示設定エラーなどが原因で発生する可能性があります。この記事では、いくつかの一般的な回避策を紹介し、具体的なコード例を示します。 1. ファイルのエンコード設定を確認します。ファイルのエンコードを表示するには file コマンドを使用します。ターミナルで file コマンドを使用して、ファイルのエンコードを表示します: file-ifilename。出力に「charset」がある場合

Tomcat 起動時の文字化けの解決策: 1. Tomcat の conf 設定ファイルを変更する; 2. システム言語を変更する; 3. コマンド ライン ウィンドウのエンコードを変更する; 4. Tomcat サーバーの設定を確認する; 5. プロジェクトのエンコードを確認する; 6. ログを確認するファイル; 7 、他の解決策を試してください。詳細な導入: 1. Tomcat の conf 構成ファイルを変更し、Tomcat の conf ディレクトリを開き、「logging.properties」ファイルなどを見つけます。

Windows 10では文字化けが多発しております。多くの場合、この背後にある理由は、オペレーティング システムが一部の文字セットのデフォルト サポートを提供していないか、設定された文字セット オプションにエラーがあることです。適切な薬を処方するために、実際の操作手順を以下で詳しく分析します。 Windows 10 の文字化けコードを解決する方法 1. 設定を開いて「時刻と言語」を見つけます 2. 次に「言語」を見つけます 3. 「言語設定の管理」を見つけます 4. ここで「システム地域設定の変更」をクリックします 5. 図のようにボックスをチェックしますそして、「必ず確認してください」をクリックします。

win11でテキストドキュメントが文字化けする問題を解決するにはどうすればよいですか?多くのユーザーがwin11システムを使用していると、テキストドキュメントが文字化けして正常に読むことができなくなり、この問題を解決する方法が分からない友人も多くいます。実際、この方法は難しいことではありません。以下に、Windows 11 のシステム ドキュメントが文字化けする問題を解決する手順を編集者がまとめました。何かのヒントになれば幸いです。文字化けした Windows 11 システム ドキュメントを解決する手順: 1. まず、win11 のコントロール パネルを開き、下の検索ボックスに「コントロール パネル」と入力し、[検索] をクリックしてコントロール パネルに入ります。 2. パネルに入ったら、時計とエリアを見つけてクリックして入力し、エリア オプションをクリックします。 3. 入力後、管理パネルをクリックし、システムの地域設定の変更をクリックします。

多くのユーザーがコンピュータを使用していると、拡張子が dll のファイルがたくさんあることに気づきますが、そのファイルの開き方が分からないユーザーも多いので、知りたい方は以下を参照してください。 dll ファイルを開いて編集するには: 1. 「exescope」というソフトウェアをダウンロードし、インストールします。 2. 次に、dll ファイルを右クリックし、[exescope でリソースを編集] を選択します。 3. ポップアップ エラー プロンプト ボックスで [OK] をクリックします。 4. 次に、右側のパネルで、各グループの前にある「+」記号をクリックして、グループに含まれるコンテンツを表示します。 5. 表示したい dll ファイルをクリックし、「ファイル」をクリックして「エクスポート」を選択します。 6. そうすれば、次のことができます

友人の中には、メモ帳を開こうと思っていますが、Win11 のメモ帳が文字化けしていることに気づき、どうすればよいかわかりませんが、実際には、通常は地域と言語を変更するだけで十分です。 Win11 メモ帳が文字化けする: 最初のステップ、検索機能を使用し、「コントロール パネル」を検索して開きます。 2 番目のステップ、時計と地域の下の [日付、時刻、または数値形式の変更] をクリックします。 3 番目のステップ、カードの上にある [管理] オプションをクリックします。 4 番目のステップでは、下の [システムの地域設定の変更] をクリックし、5 番目のステップでは、現在のシステムの地域設定を [中国語 (簡体字、中国)] に変更し、[OK] をクリックして保存します。

filezilla の文字化けの解決策は次のとおりです: 1. エンコード設定を確認する; 2. ファイル自体を確認する; 3. サーバー構成を確認する; 4. 他の転送ツールを試す; 5. ソフトウェアのバージョンを更新する; 6. ネットワークの問題を確認する; 7 . 技術サポートを求めてください。 FileZillaの文字化け問題を解決するには、多方面から始めて徐々に原因を究明し、それに応じた対策を講じて修復する必要があります。
