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
提交
取消