文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何理解Python vim检查编码

2023-06-17 15:04

关注

这篇文章将为大家详细讲解有关如何理解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编码。

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检查编码就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯