アカウント名:
パスワード:
IIptablesチュートリアル 1.2.2 日本語訳 [asahi-net.or.jp] というページにアクセスすると、
のうち、Google Chrome だけが文字コードが Shift_JIS だと誤検出して、本文全体が文字化けします。
HTTPレスポンスヘッダでは文字コード指定無しで、meta要素では下記のような文字コード指定がされています。
<METANAME="Content-Type"CONTENT="text/html; charset=EUC-JP">
http-equiv 属性ではなくname 属性で "Content-Type" が指定されているため、meta要素での文字コード指定は無効と判断されているかもしれませんが、本文全文が EUC-JP で書かれているページを誤判定するのはおかしな話です。
Google Chrome 55 では上記のページも正しく判定されるのか、楽しみです。
Google Chrome 53.0.2785.89 m (64-bit) で開きましたが全く文字化けなし。なにか設定をデフォルトから変更していませんか。
53.0.2785.89 m (64-bit)で開いたら化けました。なにか設定をデフォルトから変更していませんか。
#3074020 さん、#3074023 さん、#3074046 さん
わざわざ検証してくださいまして、ありがとうございます。
2台のPC(Windows 10 Pro)で、Google Chrome 53.0.2785.89 m (64-bit) のプロファイルを初期化した直後に検証してみましたが、同じ現象が再現しました。試しにHTTPレスポンスヘッダ・meta要素のどちらでも文字コードを指定していない文字コードが UTF-8 な日本語のウェブページを作って検証してみたところ、それも文字化けしました。
文字化けした状態で、メニューボタン → その他のツール → エンコード のメニューをよく見てみると「自動検出」のチェックボックスが外れていました。「自動検出」のチェックボックスを有効にしてみたところ、文字化けせずに正しく文字コードが自動検出されるようになりました。
チェックボックスのチェック状態はブラウザを再起動後も維持されましたが、新規プロファイルを作成するとチェック無しの状態になるので、Google Chrome 53 の初期設定では文字コードの「自動検出」が無効 なようです。
Chrome 53.0.2785.89 m のデフォルト設定だと、設定 → 詳細設定を表示 → ウェブ コンテンツ→ フォントをカスタマイズ → エンコード で、日本語 (Shift_JIS) が指定されていたので、ウェブサイト側で文字コードを指定(HTTPヘッダーやmeta要素)しない限り、Shift_JIS として扱われるようでした。
「Google Chrome 53 の時点では、自動検出性能が最低レベル」というのは誤りで、「Google Chrome 53 の時点では、自動検出がデフォルトで無効(HTTPヘッダやmeta要素で指定がない場合には Shift_JIS として扱われる)」でした。
ブラウザのデフォルト設定で「自動検出」が有効だと思い込んでいたため、プロファイル初期化直後に文字化けすることから「自動検出性能が最低レベル」と書いてしまいましたが、誤りでした。申し訳ありませんでした。
テキストエンコーディングのメニューがなくなるってことはChrome 55以降は既定で(あるいは常に)有効になるんだろうな。そうじゃなかったらアホすぎる
WebKitって文字コードの自動検出などという機能は必要ない、という素晴らしい(笑)考えのもとに作られていたと思いますね、大昔から。
55.0.2846.0 canary (64-bit)文字化けしない
うちのEdgeは化けるようなのだが...バージョンも同じだし何が違うのか
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
Google Chrome 53 の時点では、自動検出性能が最低レベル (スコア:3)
IIptablesチュートリアル 1.2.2 日本語訳 [asahi-net.or.jp] というページにアクセスすると、
のうち、Google Chrome だけが文字コードが Shift_JIS だと誤検出して、本文全体が文字化けします。
HTTPレスポンスヘッダでは文字コード指定無しで、meta要素では下記のような文字コード指定がされています。
http-equiv 属性ではなくname 属性で "Content-Type" が指定されているため、meta要素での文字コード指定は無効と判断されているかもしれませんが、本文全文が EUC-JP で書かれているページを誤判定するのはおかしな話です。
Google Chrome 55 では上記のページも正しく判定されるのか、楽しみです。
Re: (スコア:0)
Google Chrome 53.0.2785.89 m (64-bit) で開きましたが全く文字化けなし。
なにか設定をデフォルトから変更していませんか。
Re: (スコア:0)
53.0.2785.89 m (64-bit)で開いたら化けました。
なにか設定をデフォルトから変更していませんか。
デフォルトで 「自動検出」 が無効になっていた模様 (スコア:5, 参考になる)
わざわざ検証してくださいまして、ありがとうございます。
2台のPC(Windows 10 Pro)で、Google Chrome 53.0.2785.89 m (64-bit) のプロファイルを初期化した直後に検証してみましたが、同じ現象が再現しました。試しにHTTPレスポンスヘッダ・meta要素のどちらでも文字コードを指定していない文字コードが UTF-8 な日本語のウェブページを作って検証してみたところ、それも文字化けしました。
文字化けした状態で、メニューボタン → その他のツール → エンコード のメニューをよく見てみると「自動検出」のチェックボックスが外れていました。「自動検出」のチェックボックスを有効にしてみたところ、文字化けせずに正しく文字コードが自動検出されるようになりました。
チェックボックスのチェック状態はブラウザを再起動後も維持されましたが、新規プロファイルを作成するとチェック無しの状態になるので、Google Chrome 53 の初期設定では文字コードの「自動検出」が無効 なようです。
Chrome 53.0.2785.89 m のデフォルト設定だと、設定 → 詳細設定を表示 → ウェブ コンテンツ→ フォントをカスタマイズ → エンコード で、日本語 (Shift_JIS) が指定されていたので、ウェブサイト側で文字コードを指定(HTTPヘッダーやmeta要素)しない限り、Shift_JIS として扱われるようでした。
「Google Chrome 53 の時点では、自動検出性能が最低レベル」というのは誤りで、「Google Chrome 53 の時点では、自動検出がデフォルトで無効(HTTPヘッダやmeta要素で指定がない場合には Shift_JIS として扱われる)」でした。
ブラウザのデフォルト設定で「自動検出」が有効だと思い込んでいたため、プロファイル初期化直後に文字化けすることから「自動検出性能が最低レベル」と書いてしまいましたが、誤りでした。申し訳ありませんでした。
Re: (スコア:0)
テキストエンコーディングのメニューがなくなるってことはChrome 55以降は既定で(あるいは常に)有効になるんだろうな。そうじゃなかったらアホすぎる
Re: (スコア:0)
何か林檎の呪いがかかっていませんか?
Re: (スコア:0)
WebKitって文字コードの自動検出などという機能は必要ない、という素晴らしい(笑)考えのもとに作られていたと思いますね、大昔から。
Re: (スコア:0)
55.0.2846.0 canary (64-bit)
文字化けしない
Re: (スコア:0)
うちのEdgeは化けるようなのだが...
バージョンも同じだし
何が違うのか