Debian中python3中的解码错误(UnicodeEncodeError:'ascii'编解码器无法编码位置中的字符)

时间:2013-05-08 08:36:07

标签: ubuntu python-3.x debian

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

0 个答案:

没有答案