我一直在解析一些docx文件(UTF-8编码的XML)中的特殊字符(捷克字母)。当我尝试输出到标准输出时,一切都很顺利,但是我无法将数据输出到文件中,会出现以下错误:
Traceback (most recent call last): File "./test.py", line 360, in ofile.write(u'\t\t\t\t\t\n') UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 37: ordinal not in range(128)
尽管我明确地将变量“word”转换为Unicode类型(type(word)返回的是Unicode类型),我仍然尝试使用.encode('utf-8')进行编码,但仍然卡在这个错误上。
以下是代码示例:
我也尝试了以下方法:
即使这两者结合起来:
我当时有些绝望,所以甚至尝试在
我希望你能给我一些提示,告诉我我做错了什么。
Traceback (most recent call last): File "./test.py", line 360, in ofile.write(u'\t\t\t\t\t\n') UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 37: ordinal not in range(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()
中编码word变量。ofile.write(u'\t\t\t\t\t<feat att="writtenForm" val="'+word.encode('utf-8')+u'"/>\n')
我希望你能给我一些提示,告诉我我做错了什么。