這個問題的標題是一樣的this one,但我的問題是不同的。用ElementTree寫入UTF-8數據的UTF-8文件再次
我使用tarfile.TarFile.extractfile()從tar.gz存檔中讀取數據,並將其存儲在xml.etree.ElementTree.Element中。數據是utf-8編碼的。
當我嘗試使用xml.etree.ElementTree.ElementTree.write()把它放在一個文件,我得到這個:
Traceback (most recent call last):
File "../python/GetDoc.py", line 150, in <module>
ET.ElementTree(elements).write(args.outfile, encoding="us-ascii", method="text")
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 815, in write
_serialize_text(write, self._root, encoding)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1007, in _serialize_text
write(part.encode(encoding))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 10: ordinal not in range(128)
你是如何讀取文件中的數據的?你是否正確地將它從UTF-8解碼爲unicode對象? – BrenBarn 2012-07-18 02:26:05
很快!事實上,這似乎是問題所在。我曾經天真地想過,ElementTree能夠處理UTF-8字符串。來吧,寫一個答案,我會接受它(: – drevicko 2012-07-18 02:29:21
好吧,我做出了答案。 – BrenBarn 2012-07-18 02:37:06