2010-05-26 43 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

相關問題