Python写UTF8文件,UE、记事本打开依然乱码的问题
Python写UTF8文件,UE、记事本打开依然乱码的问题
现象:使用codecs打开文件,写入UTF-8文本,正常无错误。用vim打开正常,但记事本、UE等打开乱码。
原因:一般写文本时,默认是没有BOM头的,即编辑器不知道这个文本文件是神马编码,只能智能detect,这个detect有的弱有的强,比如UE、记事本就挂了,认为是ASCII格式的,于是就乱码了。
解决方法:如果为了编辑器打开正常,可以加入BOM编码。但一定要慎重,一旦加入后,头部会增加2~3个字节,如果程序再读取,显然会出错。这个如果使用UE编辑过PHP代码抓过狂的都应该懂得,NOBOM哦亲~
|
1
2
3
4
|
fp_out = codecs.open(fn_out, "w", "utf-8")fp_out.write(codecs.BOM_UTF8.decode("utf-8"))....fp_out.close() |
注意上述codecs.BOM_UTF是个常量,Python中预定义的还有:
|
01
02
03
04
05
06
07
08
09
10
|
codecs.BOM codecs.BOM_BE codecs.BOM_LE codecs.BOM_UTF8 codecs.BOM_UTF16 codecs.BOM_UTF16_BE codecs.BOM_UTF16_LE codecs.BOM_UTF32 codecs.BOM_UTF32_BE codecs.BOM_UTF32_LE |
Python写UTF8文件,UE、记事本打开依然乱码的问题的更多相关文章
- C#写UTF8文件时指定是否含BOM头
BOM的基本概念 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实 ...
- python写xml文件
为了便于后续的读取处理,这里就将信息保存在xml文件中,想到得到的文件如下: 1 <?xml version="1.0" encoding="utf-8" ...
- Python中open文件的各种打开模式
对于Python打开文件的模式,总是记不住,这次在博客里记录一下 r+: Open for reading and writing. The stream is positioned at th ...
- python 读取utf8文件
有时候默认是gbk编码,但是要读取utf8文件,所以会出现decode 错误. 使用codecs模块: import codecs file = codecs.open('filename','r', ...
- 下载的js文件本地编辑器打开中文乱码如何解决
今天遇到的小问题,已解决,直接上图 下载直接打开是这样的 用记事本打开 另存为utf-8格式 正常了!
- python写txt文件
with open('data.txt','w') as f: #设置文件对象 w是重新写,原来的会被抹掉,a+是在原来的基础上写 str0=u"写文件\n" #写中文要在字符串签 ...
- 用python写测试数据文件
f是指向文件的指针,r是转义字符,可以让字符串中的\保持不被转义.路径点属性查然后加上当前文件. 'w'表示只写,‘r’表示只读. import random 导入random数 s = []开一个空 ...
- python 写csv文件
一.只有一列内容: def create_file(self, a, b): # 上传csv 文件 # os.remove('openfile.csv') open_file = open('5000 ...
- python写csv文件
name=['lucy','jacky','eric','man','san'] place=['chongqing','guangzhou','beijing','shanghai','shenzh ...
随机推荐
- 深入理解Fsync----JBD内核调试 专业打杂程序员 @github yy哥
http://hustcat.github.io/ http://www.cnblogs.com/hustcat/p/3283955.html http://blog.sina.com.cn/s/ar ...
- group by是什么意思 mysql中
mysql语法中group by是什么意思? 在百度中搜索半天,最后找到一篇解释比较好的(不是博文,是百度知道,很郁闷那么多网友怎么就没人解释的清楚),链接如下: http://zhidao.baid ...
- iOS CoreData (1)
下面开始学习一下CoreData. Core Data不是一个关系型数据库,也不是关系型数据库管理系统(RDBMS). Core Data 为数据变更管理.对象存储.对象读取恢复的功能提供了支持. 它 ...
- WTL 自定义 Button类-自绘
WTL 自绘Button类,支持按钮三种形态,正常模式,hover模式,鼠标按下模式,支持png图片.使用方法很简单: MyButton* pButton = new MyButton; pBut ...
- RedHat7配置Nginx实现多域名虚拟主机的SSL/TLS认证(实现单IP以不同证书服务于不同域名)
以RedHat7(64bit)平台为例 如果RedHat源没法用,可以使用EPEL源 # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-rel ...
- MKServerBuilder.psd1
MKServerBuilder.psd1 # # Module manifest for module 'MKServerBuilder' # # Generated by: Edward Guan ...
- Genymotion无法启动Virtual Box
Genymotion是非常快速的Android模拟器.这两天搞了一下Android Studio,想用Genymotion跑起一下,但死活都启动不了.很奇怪,明明几个月前还顺利启动的. Genymot ...
- hibernate自动建表采用UTF-8字符编码
hibernate自动建表采用UTF-8字符编码 hibernate建表默认为UTF-8编码 >>>>>>>>>>>>>& ...
- .NET生成PDF文件
C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strC ...
- javascript 封装 构造函数继承 非构造函数继承
1 封装 把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象 1.1 简单封装:var cat1 = { ...