这篇文章将为大家详细讲解有关如何理解Python vim检查编码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
为柯坪等地区用户提供了全套网页设计制作服务,及柯坪网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、柯坪网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
如果你在打开一个文件时中文编码是什么格式不太清楚的话,例如文件头可能指定是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将其转码。
关于如何理解Python vim检查编码就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站栏目:如何理解Pythonvim检查编码
文章链接:http://scgulin.cn/article/gcdojh.html