0

我在 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 服务器上是错误的。

4

0 回答 0