import codecs
txt = u"\u5e10\u53f7\u4e0d\u5b58\u5728"file=codecs.open("test","w","utf-8")
file.write(txt)
file.close()這個(gè)可以正確寫(xiě)入但當(dāng)string只為ascii字符時(shí),比如txt = u"qwer"
3 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
import codecs txt = u"qwer"file=codecs.open("test","w","utf-8-sig") file.write(txt) file.close()

慕姐8265434
TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
utf-8編碼本身是ascii兼容的,所以只有ascii字符的時(shí)候,“是否utf-8”編碼是沒(méi)有意義的。
如果要求文件可以被明確識(shí)別為utf8編碼,則需要在文件頭寫(xiě)入幾個(gè)特殊字符(即UTF-8的BOM),詳情參見(jiàn)cute同學(xué)的回答。
p.s. 由于文件開(kāi)頭多了幾個(gè)字符,這時(shí)候可能會(huì)導(dǎo)致某些應(yīng)用無(wú)法兼容。

心有法竹
TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
文件開(kāi)頭加上:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import codecs
txt = u"qwer"
file=codecs.open("test","w","utf-8")
file.write(txt)
file.close()
添加回答
舉報(bào)
0/150
提交
取消