Python vim检查编码在文件中的对应编码的介绍

开发 后端
你如果想对Python vim检查编码的相关功能与具体应用方案有所了解的话,你就可以点击以下的文章,希望你会有所收获。

如果你在打开一个文件时中文编码是什么格式不太清楚的话,例如文件头可能指定是utf8,而实际编码却不是,就针对这一情况,你就可以用Python vim检查编码对其进行解决,以下是文章的具体介绍。

打开一个中文文件,不清楚其中文编码到底是什么格式。python源程序文件头可能指定是utf8,而实际编码却是gbk。不一致的编码在python源码中,可能在执行时得到错误的结果。一种解决办法是查看二进制,但汉字的二进制到底对应什么编码呢?

vim的vimrc里面增加两行:

  1. set fenc=utf-8  
  2. set fileencodings=utf-8,cp936,big5,euc-jp,
    euc-kr,latin1,ucs-bom 

 

这样,文件保存缺省的为utf-8编码。

 

  1. set enc=cp936 

这是gvim界面显示的编码,windows下用cp936,linux下用utf8,***不要设,系统自己判断。

对新打开的已经存在的文件,如果不确定一个文件是否是utf8还是gbk,用Pythonvim打开文件,看到中文,再在命令模式下执行

  1. :%!xxd  

看到相应的二进制。假如文本中有“你好”,会在左边对应位置看到你好的十六进制表示。打开python3.0,在命令行下将文本中的特定字“你好”进行二进制转码。

  1. view plaincopy to clipboardprint?  
  2. >>> a='你好'   
  3. >>> b=a.encode('utf8')   
  4. >>> b   
  5. b'\xe4\xbd\xa0\xe5\xa5\xbd'   
  6. >>> c=a.encode('gbk')   
  7. >>> c   
  8. b'\xc4\xe3\xba\xc3'   
  9. >>> a='你好' 
  10. >>> b=a.encode('utf8')  
  11. >>> b  
  12. b'\xe4\xbd\xa0\xe5\xa5\xbd'  
  13. >>> c=a.encode('gbk')  
  14. >>> c  
  15. b'\xc4\xe3\xba\xc3'  

可以看到,对中文“你好”的二进制,utf8是

  1. 0xe4ba0 0xe5a5bd 

而对gbk,gb2312,cp936,gb18030,则二进制是:0xc4e3 0xbac3与Python vim检查编码中二进制一比较,就看出文本中是什么编码了。知道编码后,再用

  1. :%!xxd -r 

命令将十六进制转为普通的文本,保存。对已经存在的文本,linux下可以用iconv将其转码。以上内容就是对Python3.0 和Python vim检查编码的介绍。

【编辑推荐】

  1. Python常用模块中经常使用的其中模块
  2. Python模块功能在实际应用方案中的相关功能的介绍
  3. Python安装中对配置环境变量实际操作的方法
  4. Python手工加载Django的实际操作的四部分详解
  5. Python VIM 注释掉代码的具体方案的描述

 

责任编辑:佚名 来源: 博客园
相关推荐

2009-07-28 03:43:00

RowDataBoun

2010-03-10 13:42:44

Python脚本

2010-03-24 18:39:21

Python unic

2010-03-18 17:43:46

python 编程语言

2012-01-13 12:21:45

Java

2010-03-11 16:03:04

Python prin

2009-12-04 17:31:32

PHP编码转换

2010-03-24 11:37:22

Python unic

2010-03-24 18:00:30

Python中文转换u

2009-05-05 09:46:18

Java编码理论字符

2022-12-13 07:55:00

Python地理编码

2016-02-15 14:13:39

Python编码环境

2014-09-19 15:30:26

2009-07-27 16:56:05

DataBound

2016-05-12 15:51:08

前端开发字符编码

2009-12-01 14:46:16

PHP mb_subs

2009-12-24 10:12:02

Linux查看文件编码

2010-03-05 15:02:09

Linux文件编码

2023-04-13 00:24:00

2010-03-19 09:26:52

Python编程
点赞
收藏

51CTO技术栈公众号