我在 Python3 脚本中解码有问题。我知道这个问题已经讨论过了,但我找到的解决方案没有帮助。
问题:我有 'Unicode string' 类型的 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 服务器上是错误的。