ファイルを読み込もうとしていますが、文字エンコードがわかりません。ファイルには値がわかっている2つの文字があり、16進エディターに表示される16進値は次のとおりです。
0xCCA9 é
0xCCBB ê
0xCCC1 á
これをエンコードするアイデアはありますか?
すべての英語の文字は、ファイルでASCIIエンコードされています。私は、それが何らかの用途である場合、mac中央ヨーロッパでエンコードされた同様のファイルを持っていました。おそらく、それらは誤って複数回エンコードされています。
編集:
Python 2.7でマッピングを見つけるためのコード:(上記のEsailijaの回答を参照してください)。
find_mappings(...)
文字マッピングの辞書が与えられるジェネレータです。使用可能なすべての文字セットを反復処理し、基準に一致する文字セットを生成します。
import pkgutil
import encodings
def get_encodings():
false_positives = set(["aliases"])
found = set(name for imp, name, ispkg in pkgutil.iter_modules(encodings.__path__) if not ispkg)
found.difference_update(false_positives)
return found
def find_mappings(maps):
encodings = sorted(get_encodings())
for f in encodings:
for g in encodings:
try:
if all([k.decode(f).encode(g) == v for k,v in maps.items()]):
yield (f,g)
except:
# Couldn't encode/decode
pass
for mapping in find_mappings({'\xCC': '\xC3', '\xBB': '\xAA', '\xA9': '\xA9', '\xC1': '\xA1'}):
print(mapping)