多くのUTF-8xmlファイルを含むzipアーカイブがあります。これらのファイルには主に英語のタグとテキストが含まれていますが、一部のタグには英語以外のテキストが含まれています。zipファイルを開いて、その中のxmlファイルを解析することに問題はありませんが、英語以外のテキストではエンコードが失われます。
xmlファイルを抽出してNotepad++で開くと、英語以外のテキストは次のようになります。
Курс карбованца к доллару не изменился на Украинской Межбанковской Валютной Бирже (УМВБ) - 176.100.
Python(Linuxボックス上)で抽出して読み取ると、テキストは次のようになります。
ÐÑÑÑ ÐºÐ°ÑбованÑа к доллаÑÑ Ð½Ðµ изменилÑÑ Ð½Ð° УкÑаинÑкой ÐежбанковÑкой ÐалÑÑной ÐиÑже (УÐÐÐ) - 176.100.
私のコードは次のようになります:
def parse(self, fp):
# open/decompress zip file
with zipfile.ZipFile(fp, 'r') as f:
# get all files in zip
comp_files = f.namelist()
for comp_file in comp_files:
cfp = f.open(comp_file, 'r')
# parse xml
tree = ElementTree.parse(cfp)
...parsing...
cfpからテキストをデコード/エンコードし、codecs.EncodedFile()でラップし、utf_8とutf_8_sigのエンコードを変更せずに入力してみました。英語以外のテキストを修正するにはどうすればよいですか?