f = open("go.txt", "w")
f.write(title)
f.close()
如果“title”在日文/ utf-8中怎么办?如何修改此代码以便能够在不发生ascii错误的情况下编写“标题”?这是我写入文件的最新方式。但是,我不能做UTF-8?
编辑:那么,如何以UTF-8读取此文件?
f = open("go.txt", "w")
f.write(title)
f.close()
如果“title”在日文/ utf-8中怎么办?如何修改此代码以便能够在不发生ascii错误的情况下编写“标题”?这是我写入文件的最新方式。但是,我不能做UTF-8?
编辑:那么,如何以UTF-8读取此文件?
import codecs
# ...
# title is a unicode string
# ...
f = codecs.open("go.txt", "w", "utf-8")
f.write(title)
# ...
fileObj = codecs.open("go.txt", "r", "utf-8")
u = fileObj.read() # Returns a Unicode string from the UTF-8 bytes in the file
这取决于你是否要插入一个Unicode UTF-8 byte order mark,其中我所知道的唯一的方法是打开一个正常的文件,并写入:
import codecs
f = open('go.txt', 'wb')
f.write(codecs.BOM_UTF8)
f.write(title.encode('utf-8')
f.close()
但是总的来说,我不想添加UTF-8 BOM,但以下内容将足够:
import codecs
f = codecs.open('go.txt', 'w', 'utf-8')
f.write(title)
f.close()
您也可以使用'utf-8-sig'编解码器。它在写入时写入BOM并在读取时将其删除(如有必要)。 – 2010-05-26 03:36:11
如果您重新使用Python 2.x,title指向一个str对象,很难看出你会如何得到一个错误。如果它是一个python 2.x unicode对象或一个3.x str对象,那么它不是“任何东西/ utf-8”。请说你是否使用Python 2.X或3.X.请显示触发错误的代码。显示你得到的确切的错误信息。一般来说,请不要这样做是你的第一个问题;这是你的第554! – 2010-05-26 02:01:24