Python 独角兽巨蟒?
尝试写入文件时出现以下错误:Python 独角兽巨蟒?,python,python-3.x,Python,Python 3.x,尝试写入文件时出现以下错误: UnicodeEncodeError('ascii', u'B\u1ea7u cua (B\u1ea7u cua 2017 )', 1, 2, 'ordinal not in range(128)')) 我试着写这篇文章ầu cua在文件中: f = codecs.open("13.txt", "a", "utf-8") f.write("{}\n".format(title)) 我还尝试使用title.encode() 这给了我一个新的错误: 当我使用.enc
UnicodeEncodeError('ascii', u'B\u1ea7u cua (B\u1ea7u cua 2017 )', 1, 2, 'ordinal not in range(128)'))
我试着写这篇文章ầu cua在文件中:
f = codecs.open("13.txt", "a", "utf-8")
f.write("{}\n".format(title))
我还尝试使用title.encode()
这给了我一个新的错误:
当我使用.encode(text)
时,我得到以下错误:`
UnicodeDecodeError('ascii', 'B\xe1\xba\xa7u cua (B\xe1\xba\xa7u cua 2017 )\n', 1, 2, 'ordinal not in range(128)'))
`
如“将Unicode文本写入文本文件?”所述,您有许多解决方案
基本上,您有两个问题:
str.format()
方法必须用于unicode
对象
u'{}\n'.format('Bầu cua')
您写入的文件也必须使用正确的编码打开:
f = open('13.txt', 'a', encoding='utf-8')
因此,这适用于Python 3:
data = 'Bầu cua'
f = open('13.txt', 'a', encoding='utf-8')
line = u'{}\n'.format(data)
f.write(line)
f.close()
如“将Unicode文本写入文本文件?”所述,您有许多解决方案
基本上,您有两个问题:
str.format()
方法必须用于unicode
对象
u'{}\n'.format('Bầu cua')
您写入的文件也必须使用正确的编码打开:
f = open('13.txt', 'a', encoding='utf-8')
因此,这适用于Python 3:
data = 'Bầu cua'
f = open('13.txt', 'a', encoding='utf-8')
line = u'{}\n'.format(data)
f.write(line)
f.close()
尝试在文件开头的这两行。它对Python2.7很有效
#!/usr/bin/env python
# -*- coding: utf-8 -*-
data = u'Bầu cua'
f = open('test.txt', 'a')
line = u'{}\n'.format(data)
f.write(line.encode('utf8'))
f.close()
尝试在文件开头的这两行。它对Python2.7很有效
#!/usr/bin/env python
# -*- coding: utf-8 -*-
data = u'Bầu cua'
f = open('test.txt', 'a')
line = u'{}\n'.format(data)
f.write(line.encode('utf8'))
f.close()
可能的副本我也读过这个问题,并尝试了所有的建议。这对我不起作用
http://stackoverflow.com/a/6048203/7041624
@MisterPi我们可以把编码类型放在文件的开头。我也读过这个问题,并尝试了所有建议,但对我无效http://stackoverflow.com/a/6048203/7041624
@MisterPi我们可以将编码类型放在文件的开头是的,我应用了您的答案,现在得到错误:UnicodeDecodeError('ascii','Volkswagen Golf GTI\xe2\x80\x93 EBG\n',20,21',序号不在范围内(128)')
注意,请注意我的评论是的,我应用了您的答案,现在出现错误:UnicodeDecodeError('ascii',Volkswagen Golf GTI\xe2\x80\x93 EBG\n',20,21',序号不在范围内(128))
注意,请注意我的评论