但当string只为ascii字符时,比如
txt = u"qwer"
这时生成的file仍旧为ascii格式
需要怎么做才能生成utf-8格式的文件?
答:UTF-8编码向下兼容,即 包含了ASCII编码
-》 所以当文件内容只有ASCII字符串时,是ASCII编码,也是UTF-8编码
-》你用Python等代码,去用UTF-8编码去打开时,也不会报错的
-》如果你文件内容包含非ASCII字符,比如中文字符时,指定了UTF-8编码时,保存出来的就显示UTF-8编码了
相关
UTF-8 with BOM
和UTF-8编码相关的,还有个叫做:UTF-8 with BOM=带BOM的UTF-8
UTF-8和UTF-8 with BOM`区别
UTF-8 with BOM比UTF-8文件最开始多了个字符\ufeff,也叫BOM头
一般来说,用途最广的,最通用,兼容性最好的是:UTF-8
-》不需要,也不太应该去保存为UTF-8 with BOM
那什么时候考虑保存为UTF-8 with BOM?
比如我此处遇到的特殊情况:
Mac中,excel去打开UTF-8的csv时,如果里面有中文,就会显示乱码
想要避免乱码,就应该:把csv从UTF-8改为UTF-8 with BOM
这样Mac中Excel再去打开UTF-8 with BOM的csv,就不会乱码了。
字符编码相关教程
可以参考我写的: