我在Python3脚本中解码时遇到问题。我知道这个问题已被讨论过,但我找到的解决方案没有帮助。
问题:我有'Unicode字符串'类型的xml(从doc.toxml()获取)并且它写入文件。我回复错误'UnicodeEncodeError:'ascii'编解码器不能编码位置723-727中的字符:序数不在范围(128)'。如果我编码doc.toxml(encoding ='UTF-8')并解码xml.decode('utf-8')同样的错误。
片段1:
resXmlFormat = doc.toxml()
doc = '<?xml version="1.0" ?><ROOT><param>123</param></ROOT>'
file = open('/tmp/test.xml', 'w+')
file.write(resXmlFormat)
file.close()
错误:
file.write(resXmlFormat)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 723-727: ordinal not in range(128)
片段2(带编码):
resXmlFormat = doc.toxml(encoded='UTF-8')
doc = '<?xml version="1.0" encoding="UTF-8"?><ROOT><param>123</param></ROOT>'
file = open('/tmp/test.xml', 'w+')
file.write(resXmlFormat.decode('utf-8'))
file.close()
错误:
file.write(resXmlFormat.decode('utf-8'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 723-727: ordinal not in range(128)
在我当地的Ubuntu上没问题。但是在Debian服务器上是假的。