にUTF-8を使用しているとき、私は、操作、解析しよう、とPythonのElementTreeのを使用して、出力HTMLてる非破りスペースを変換しません。マックOS X 10.6上で、私が取得:のPythonのElementTreeは出力
<p>Less than <</p>
Traceback (most recent call last):
File "bar.py", line 20, in <module>
print ET.tostring(p, encoding='utf-8')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1120, in tostring
ElementTree(element).write(file, encoding, method=method)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 815, in write
serialize(write, self._root, encoding, qnames, namespaces)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 931, in _serialize_xml
write(_escape_cdata(text, encoding))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1067, in _escape_cdata
return text.encode(encoding, "xmlcharrefreplace")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 19: ordinal not in range(128)
は私が思ったことを指定する「エンコード= 『UTF-8』」非改行空白文字の世話をするが、どうやらそれはないでしょう。代わりに私は何をすべきですか?
問題は入力時ではありません。UseForeignDTDトリックはそれで問題ありません。問題は出力されています:メモリ内のテキストには0xA0が含まれています.Et.tostringによってUTF-8表現に変換されると思います(私は 'encoding = "UTF-8"と言っています)。 –