如果你在打开一个文件时中文编码是什么格式不太清楚的话,例如文件头可能指定是utf8,而实际编码却不是,就针对这一情况,你就可以用Python vim检查编码对其进行解决,以下是文章的具体介绍。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的嘉定网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
打开一个中文文件,不清楚其中文编码到底是什么格式。python源程序文件头可能指定是utf8,而实际编码却是gbk。不一致的编码在python源码中,可能在执行时得到错误的结果。一种解决办法是查看二进制,但汉字的二进制到底对应什么编码呢?
vim的vimrc里面增加两行:
- set fenc=utf-8
- set fileencodings=utf-8,cp936,big5,euc-jp,
euc-kr,latin1,ucs-bom
这样,文件保存缺省的为utf-8编码。
- set enc=cp936
这是gvim界面显示的编码,windows下用cp936,linux下用utf8,***不要设,系统自己判断。
对新打开的已经存在的文件,如果不确定一个文件是否是utf8还是gbk,用Pythonvim打开文件,看到中文,再在命令模式下执行
- :%!xxd
看到相应的二进制。假如文本中有“你好”,会在左边对应位置看到你好的十六进制表示。打开python3.0,在命令行下将文本中的特定字“你好”进行二进制转码。
- view plaincopy to clipboardprint?
- >>> a='你好'
- >>> b=a.encode('utf8')
- >>> b
- b'\xe4\xbd\xa0\xe5\xa5\xbd'
- >>> c=a.encode('gbk')
- >>> c
- b'\xc4\xe3\xba\xc3'
- >>> a='你好'
- >>> b=a.encode('utf8')
- >>> b
- b'\xe4\xbd\xa0\xe5\xa5\xbd'
- >>> c=a.encode('gbk')
- >>> c
- b'\xc4\xe3\xba\xc3'
可以看到,对中文“你好”的二进制,utf8是
- 0xe4ba0 0xe5a5bd
而对gbk,gb2312,cp936,gb18030,则二进制是:0xc4e3 0xbac3与Python vim检查编码中二进制一比较,就看出文本中是什么编码了。知道编码后,再用
- :%!xxd -r
命令将十六进制转为普通的文本,保存。对已经存在的文本,linux下可以用iconv将其转码。以上内容就是对Python3.0 和Python vim检查编码的介绍。
【编辑推荐】
网站题目:Python vim检查编码在文件中的对应编码的介绍
本文链接:http://www.shufengxianlan.com/qtweb/news5/405355.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联