2010-05-26 61 views
2
f = open("go.txt", "w") 
f.write(title) 
f.close() 

如果“title”在日文/ utf-8中怎么办?如何修改此代码以便能够在不发生ascii错误的情况下编写“标题”?这是我写入文件的最新方式。但是,我不能做UTF-8?

编辑:那么,如何以UTF-8读取此文件?

+0

如果您重新使用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

回答

2

How to use 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 
2

这取决于你是否要插入一个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() 
+2

您也可以使用'utf-8-sig'编解码器。它在写入时写入BOM并在读取时将其删除(如有必要)。 – 2010-05-26 03:36:11

相关问题