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

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

慕姐8265434
TA貢獻1813條經驗 獲得超2個贊
utf-8編碼本身是ascii兼容的,所以只有ascii字符的時候,“是否utf-8”編碼是沒有意義的。
如果要求文件可以被明確識別為utf8編碼,則需要在文件頭寫入幾個特殊字符(即UTF-8的BOM),詳情參見cute同學的回答。
p.s. 由于文件開頭多了幾個字符,這時候可能會導致某些應用無法兼容。

心有法竹
TA貢獻1866條經驗 獲得超5個贊
文件開頭加上:
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()
添加回答
舉報
0/150
提交
取消