特殊文字(チェコ語のアルファベット)を使用して、いくつかのdocxファイル(UTF-8でエンコードされたXML)を解析してきました。stdoutに出力しようとすると、すべてがスムーズに進みますが、ファイルにデータを出力できません。
トレースバック(最後の最後の呼び出し):
ファイル "./test.py"、行360、
ofile.write(u'\ t \ t \ t \ t \ t \ n')
UnicodeEncodeError:'ascii'コーデックはできません位置37の文字u'\xed'をエンコードします:序数が範囲内にありません(128)
word
変数を明示的にユニコードタイプ(返されたユニコード)にキャストしましたがtype(word)
、それをエンコードしようとしましたが、.encode('utf-8)
それでもこのエラーで立ち往生しています。
これが現在のコードのサンプルです。
for word in word_list:
word = unicode(word)
#...
ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word+u'"/>\n')
#...
私も次のことを試しました:
for word in word_list:
word = word.encode('utf-8')
#...
ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word+u'"/>\n')
#...
これら2つの組み合わせでさえ:
word = unicode(word)
word = word.encode('utf-8')
私はちょっと必死だったので、変数内の単語をエンコードしようとしましたofile.write()
ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word.encode('utf-8')+u'"/>\n')
私が間違っていることのヒントをいただければ幸いです。