Closed ma8ma closed 9 months ago
応急処置としてエンコーディング設定が有効のとき文字化けが再発しないように修正しました。
about:config の「(安全でない) スレ一覧とスレビューのプロパティにあるエンコーディング設定を有効にする」が"はい"のときは、HTTPヘッダーやHTMLデータに含まれるエンコーディング情報を無視して板のプロパティで設定されたエンコーディングを優先します。
設定を優先する挙動は不自然でないと思いますが正式な動作とするか未定です。 エンコーディング設定が無効のときは文字化けが続いていますがなるべく歪にならない方法を探しています。
エンコーディング設定が無効のときデフォルトのエンコーディングを使う設定を実装しました。
about:configの「(安全でない) スレ一覧とスレビューのプロパティにあるエンコーディング設定を有効にする」 と板のプロパティに追加した「(実験的な機能) エンコーディングの判定」を設定変更することで3つのモードが利用できます。
さらにHTTPヘッダーではなく取得したテキストからエンコーディングを判定するモードの追加を考えています。
板のプロパティにエンコーディングを判定する方法を追加しました。
この設定は about:config の「(安全でない) スレ一覧とスレビューのプロパティにあるエンコーディング設定を有効にする」が"はい"のときは利用できません。 このオプションは実験的なサポートのため変更または廃止の可能性があります。
互換性の注意: 修正前の動作は「HTTPヘッダーのエンコーディング情報を使う」ですが、修正後は「デフォルト設定を使う」が初期設定になり動作が変更されます。
機能実装を終えたためissueを閉じます。
5chのagreeとkesサーバーにある板を読み込むとスレ一覧が文字化けする
バグの説明
5chのagreeとkesサーバーにある板を読み込むとスレ一覧が文字化けすると報告がありました。
https://mao.5ch.net/test/read.cgi/linux/1689151433/664-679n
再現の方法
https://agree.5ch.net
またはhttps://kes.5ch.net
をwebブラウザで開くやりたかったこと・期待する結果
文字化けせず板やスレを開く。
スクリーンショット
なし
動作環境
追加の情報
文字化けの原因
JDimで板を開くと
subject.txt
を取得しますがHTTPレスポンスにContent-Type
ヘッダーが含まれています。 2023-10-01 時点では、agreeやkesサーバーが返すsubject.txt
のContent-Type
はcharsetがutf8と指定されています。 しかし、テキストのエンコーディングはshift_jisなのでHTTPからエンコーディングを判定した結果、内容と不一致が起こり文字化けしたようです。1123 で追加されたテキストエンコーディングを変更する機能を使えば文字化けを直すことができますが
subject.txt
を取得するとエンコーディングが再判定されて文字化けが再発します。5chのサーバーメンテナンス
https://agree.5ch.net/test/read.cgi/operate/1673084281/217 charsetの問題との関係は不明ですが 2023-09-25 の週からサーバーメンテナンスが行われているようです。
修正のアイデア
subject.txt
のエンコーディングはshift_jisで固定してHTTPヘッダーは無視する