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