gpt4 book ai didi

python-2.7 - 在 Python 中使用 file.write 写入文件时出错。 Unicode编码错误

转载 作者:行者123 更新时间:2023-12-04 01:36:26 25 4
gpt4 key购买 nike

我从来没有处理过编码和解码字符串,所以我是这方面的新手。当我尝试使用 Python 中的 file.write 将从另一个文件读取的内容写入临时文件时,我收到了 UnicodeEncodeError 错误。我收到以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 41333: ordinal not in range(128)

这是我在我的代码中所做的。我正在读取一个 XML 文件并从“mydata”标签中获取文本。然后我遍历 mydata 以查找 CDATA
    parser = etree.XMLParser(strip_cdata=False)
root = etree.parse(myfile.xml, parser)
data = root.findall('./mydata')
# iterate through list to find text (lua code) contained in elements containing CDATA
for item in myData:
myCode = item.text

# Write myCode to a temporary file.
tempDirectory = tempfile.mkdtemp(suffix="", prefix="TEST_THIS_")
file = open(tempDirectory + os.path.sep + "myCode.lua", "w")

file.write(myCode + "\n")
file.close()

当我点击以下行时,它因 UnicodeEncodeError 而失败:
file.write(myCode + "\n")

我应该如何正确编码和解码?

最佳答案

Python2.7的open function 不像 python3 那样透明地处理 unicode 字符。有extensive documentation on this ,但是如果你想直接写unicode字符串而不解码它们,你可以试试这个

>>> import codecs
>>> f = codecs.open(filename, 'w', encoding='utf8')
>>> f.write(u'\u201c')

为了进行比较,这就是错误发生的方式
>>> f = open(filename, 'w')
>>> f.write(u'\u201c')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 0: ordinal not in range(128)

关于python-2.7 - 在 Python 中使用 file.write 写入文件时出错。 Unicode编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22392377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com