私が扱っているHTMLファイルは一般にutf-8ですが、いくつかの壊れたエンコーディングがあり、Unicodeに変換できません。私の考えは、バイナリとしてそれらを解析し、最初のステップで、すべての適切なutf-8エンコーディングをhtmlコードで置き換えることです。バイナリファイルのutf-8コードをpythonのhtmlコードに変換する方法3
e.g. "\xc2\xa3" to £
2番目の手順では、壊れたエンコードを適切なものに置き換えます。
私は最初のステップで立ち往生しました。単一の文字を置換すると、次のように置換されます。
テーブルからのコードマッピングの取得は機能しません。テーブルを読むとき、utf-8コードはエスケープされます(b '\ xc3 \ x84')。二重スラッシュを取り除く方法が見つかりません。
私はこの問題を解決するいくつかの汚い方法を考えることができますしかし、それをきれいなものがなければならないべきか?
どのようにエンコードが壊れていますか? FWIWの方が逆方向に進む傾向があります。「" & < >」とおそらくは「 」という名前のエンティティのみを使用し、それ以外の場合はUTF-8を使用します。あなたが本当に古代の&/または壊れたソフトウェアをサポートする必要がない限り... –
例えば、私は適切なutf-8コードをすべて置き換える前に、 '„'であると思われる '\ x84'を取得しますが、置換(b '\ x84'、b '„') '\ xc3 \ x84'(ak 'Ä')のように\ x84の一部です。だから私は、私が置き換えを行う前にutf-8コードを "保護"しなければならないと思います。 – Laxas