我一直在用特殊字符(捷克字母)解析一些 docx 文件(UTF-8 编码的 XML)。当我尝试输出到标准输出时,一切都很顺利,但我无法将数据输出到文件中,
回溯(最近一次调用):
文件“./test.py”,第 360 行,in
ofile.write(u'\t\t\t\t\t\n')
UnicodeEncodeError: 'ascii' codec can't在位置 37 编码字符 u'\xed':序数不在范围内(128)
尽管我将word
变量显式转换为 unicode 类型(type(word)
返回的 unicode),但我尝试对其进行编码,但.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')
#...
甚至这两者的结合:
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')
我会很感激任何关于我做错了什么的提示。