Firefoxが一部のサイトの「文字エンコード」メニューを無効にしているのはなぜですか?


16

一部のWebサイトでは、Firefoxの[表示/文字エンコード]メニューが無効になっていることに気付きました。なぜですか?

有効にすることは可能ですか?


そのようなサイトの例はhaszon.huです。
カルマリオ14

おそらくバグ832910に関連しています。これは、特定のサイトでエンコーディングメニューを無効にして、エクスプロイトを防ぐように要求します(Android固有で未解決のもの。デスクトップに相当するものを探しています)。
ボブ14

回答:


16

これは、バグ234628の修正によるものです。[効果]> [不要](XMLなど)が表示されない場合[表示]> [文字コーディング]メニューを無効にします

具体的には、コメント#63を見ると:

UTF-8 BOMがある場合については、BOMをメニューより優先させるのが理にかなっています

BOMは、 Unicodeでエンコードされた文書内のバイトの順序を識別するために使用されます。

指定された理由は次のように要約できます。

  • Gecko(Firefoxのレンダリングエンジン)は、BOMを有効なHTMLスタート(<htmlまたは<!DOCTYPEその他)としてレンダリングする他のエンコーディングをサポートしていません。

  • 他の主要なブラウザ(IE6 +、WebKitベースの[Chromeなど])も同じことを行います。たとえば、Chromeでエンコードを変更しようとすると、UTF-8にリセットされます。

  • そうしないと、フォーム入力を台無しにする可能性があります。


指定したサンプルページは、3つのUTF-8 BOMバイトで始まります。ページを保存し、16進エディターでHTMLファイルを開くと、これを確認できます。BOMはそれをUTF-8ドキュメントとして明確に識別し、他のエンコーディングで開くと正しいHTMLページが生成されません。

BOMを表示する16進エディターのスクリーンショット

ウィキペディアで説明されているように0xEF 0xBB 0xBF、左側にBOM が表示されます。右側に、ANSI / CP1252としてレンダリングされたときの外観を示します。

本当にしたい場合は、ファイルを保存し、問題のあるBOMを取り除き、ファイルを開くことができます。または、ブラウザに到達する前にファイルをインターセプトおよび変更するプロキシ(Fiddler2が適しています)をセットアップできます。ただし、これらは本当に良い解決策ではなく、さらに問題を引き起こす可能性があります。エンコードの問題がある場合に行う最善の方法は、Webサイトの管理者に連絡することです。とにかく、可能であればどこでもUnicodeに移行する必要があります。古い、より制限されたエンコーディング標準は使用しません。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.