处理编码问题利器之文本编辑器⑴——wxmedit -欧洲杯足彩官网

`
jywhltj
  • 浏览: 42703 次
  • 性别:
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 0)
    • ( 0)
    存档分类
    最新评论

    处理编码问题利器之文本编辑器⑴——wxmedit

    工欲善其事,必先利其器。
    ——《论语》

    好的工具的确能让工作事半功倍,尤其处理棘手的疑难问题时。接触过不少文本编辑器,其中有两个我觉得称得上处理编码问题的利器: ,都是跨平台的开源软件。



     

    先说后者吧,它有些像 ultraedit,可能更平易一些。本文早期版的这个编辑器本来是 的,大约是一位台湾朋友写的软件,中文支持不错,可惜目前无人维护。本来这也无妨,可是发现了它一个严重的 bug,可能会造成数据损失,于是 fork 了这个项目,就是 。wxmedit 在 madedit 的基础上做了很多改善,其中包括处理编码相关功能改进:改善编码识别效果、支持 gb18030 及其 bom、添加编码分组、添加 iso-8859-16、windows 1258、koi8-r、koi8-u 等编码支持、部分 bug 修复等。

    wxmedit 内置四种语法高亮风格,这是 dark 风格下 python 程序语法高亮效果。

     

    ultraedit 所具有的语法高亮、多文件查找替换、正则匹配、编码识别和转换、列编辑和十六进制编辑这些功能,wxmedit/madedit 都具有。若未用到 ultraedit 更多的功能,甚至可以用它作为 ultraedit 的替代品。

     

    值得一提的是,wxmedit/madedit 有两个方面完胜 ultraedit,分别是十六进制编辑编码的识别/转换。我就是在寻找更好的十六进制编辑器时发现 madedit 的,它的十六进制编辑功能的确强大,wxmedit 在这方面改进包括十六进制串复制粘贴设置、覆盖粘贴等。这里只说编码相关的,它的十六进制编辑功能有两处编码相关的特性明显优于 ultraedit:

    1、十六进制编辑模式,右侧文本区域可以按各种支持的编码显示,而 ultraedit 只有当前 locale 或者 utf-16 两种编码支持。

    2、wxmedit 十六进制编辑显示的时原始二进制信息,如有 的 utf-8 文本开头一定是 ef bb bf,而 ultraedit 无论有没有 bom 一律按照有显示,无论 utf-8、utf-16、utf-32 一律按照 utf-16 显示。

     

    以经典的 为例:


    打开该对应文本,然后从“查看->编码->东亚文字”选择“ms950”(big5 的超集,微软扩展的 big5 实现),然后切换到十六进制编辑模式,如上图。可以看出 wxmedit 在简体中文(gbk/cp936)的操作系统环境中编辑 big5 文本,其十六进制编辑模式的右侧文本区域还是可以正常按 big5 编码显示这在 ultraedit 中是不可能的,且显示的是原始十六进制数据。另外可以看到其状态栏会显示文件的编码及行尾符信息。

     

    然后从“查看->编码->西欧文字”选择“iso-8859-1”(或者从“查看->编码->oem”选择“cp437”等,总之就是选一个单字节编码)再看:


    切换编码的同时,右侧文本区域会同步更新,如图所示。这样就不难理解“許功蓋”问题本质了:因为这些汉字的 big5 编码的第二个字节是“\”('\x5c'),“\”这个字符在很多编程语言如 c、bourne shell、mysql 等中都是用作转义字符,如果把这样的汉字当作西文(如 iso-8859-1)来处理就可能引发编译错误、sql 注入等问题。

     

    我们再以只“wxmedit - 跨平臺的文本/十六進制編輯器”这几个字的文本为例来看各种编码属性情况。先列下文件列表,其中文件名以 b 结尾的包含 bom,文件名中 le 表示小端次序、be 表示大端次序:

    -rw-r--r-- 1 jyw jyw  37 10月 30 16:04 wxmedit_b5.txt
    -rw-r--r-- 1 jyw jyw  37 10月 30 16:04 wxmedit_g.txt
    -rw-r--r-- 1 jyw jyw  41 10月 30 16:04 wxmedit_gb.txt
    -rw-r--r-- 1 jyw jyw  50 10月 30 16:04 wxmedit_u8.txt
    -rw-r--r-- 1 jyw jyw  53 10月 30 16:04 wxmedit_u8b.txt
    -rw-r--r-- 1 jyw jyw  48 10月 30 16:04 wxmedit_u16be.txt
    -rw-r--r-- 1 jyw jyw  50 10月 30 16:04 wxmedit_u16beb.txt
    -rw-r--r-- 1 jyw jyw  48 10月 30 16:04 wxmedit_u16le.txt
    -rw-r--r-- 1 jyw jyw  50 10月 30 16:04 wxmedit_u16leb.txt
    -rw-r--r-- 1 jyw jyw  96 10月 30 16:04 wxmedit_u32be.txt
    -rw-r--r-- 1 jyw jyw 100 10月 30 16:04 wxmedit_u32beb.txt
    -rw-r--r-- 1 jyw jyw  96 10月 30 16:04 wxmedit_u32le.txt
    -rw-r--r-- 1 jyw jyw 100 10月 30 16:04 wxmedit_u32leb.txt
    

    可以看出包含 bom 的文件要比同编码不含 bom 的文件多几个字节(gb18030:4、utf-8:3、utf-16*:2、utf-32*:4),即 bom 所占字节数。

     

    直接打开这些文件,wxmedit 当可自动识别它们的编码。这也是 wxmedit 适合编码(尤其中文)相关处理的又一亮点。编码识别效果改进也是 wxmedit 相对于 madedit 的重要改进之一。分别切换各个文件,可以从状态栏很方便地看到各文件的编码属性,以“wxmedit_gb.txt”为例:


    这些文件状态栏显示编码属性信息为:

    wxmedit_b5.txt       ms950
    wxmedit_g.txt        gb18030
    wxmedit_gb.txt       gb18030.bom
    wxmedit_u8.txt       utf-8
    wxmedit_u8b.txt      utf-8.bom
    wxmedit_u16be.txt    utf-16be
    wxmedit_u16beb.txt   utf-16be.bom
    wxmedit_u16le.txt    utf-16le
    wxmedit_u16leb.txt   utf-16le.bom
    wxmedit_u32be.txt    utf-32be
    wxmedit_u32beb.txt   utf-32be.bom
    wxmedit_u32le.txt    utf-32le
    wxmedit_u32leb.txt   utf-32le.bom
    

    编码、大小端次序、有无 bom 都包含了。

     

    通过 wxmedit/madedit 也可以很容易转换编码或者增删 bom:

    • 转换编码:“工具->转换文件编码…”然后选择新的编码即可。
    • 增删bom:“工具->有/没有unicode bom->删除/插入bom”即可。

    此外 wxmedit 的十六进制插入、删除、替换都要比 ultraedit 更加强大和易用。

    wxmedit 还支持字数统计、大小写转换、全半角转换、中文简繁转换等中文相关特殊功能。当然从 madedit 继承过来的的简繁转换效果不好,这是我打算接手并改善的地方之一。

    wxmedit 还适合打开比较大(如 100m 以上)的文件,它打开大文件时默认以十六进制模式打开。

     

    其他的 wxmedit 功能可以浏览下它的各个菜单。

     

    如果没有其他 ultraedit 特有的高级功能还在用,以免费、开源的 wxmedit 来代替昂贵的 ultraedit 是个不错的选择。

     

    有任何问题和建议可以留言,或者发邮件给我 jiaywe[at]gmail.com。

    • 大小: 3.4 kb
    • 大小: 691 bytes
    • 描述: big5“許功蓋”问题
    • 大小: 53 kb
    • 大小: 46.5 kb
    • 描述: 编码属性
    • 大小: 32.9 kb
    • 描述: wxmedit python语法高亮
    • 大小: 153.4 kb
    分享到:
    |
    评论

    相关推荐

      一款比较强大的编辑器,支持27中语法高亮。绿色软件,解压出来就能用。支持project。

      普通人的编辑利器——vim_(for_windows)

      一款优秀的支持语法高亮的开源免费的纯文本编辑器。在文字编辑方面与windows写字板功能相当。当然,更重要的是,notepad 更是程序员们编写代码的利器!它运行便携,体积小巧、资源占用小,支持众多程序语言,比如...

      项目管理利器——maven,技术开发学习类稳定档案顶顶顶顶

      python基础——笔试面试利器

      免费全能文本编辑器notepad 更是程序员们编写代码的利器!它运行便携,体积小巧、资源占用小,支持众多程序语言,比如c 、c#、java等主流程序语言;支持html、xml、asp,perl、python、javascript等网页/脚本语言...

      sublime text 是一个代码编辑器(sublime text 2是收费软件,但可以无限期试用),也是html和散文先进的文本编辑器。sublime text是由程序员jon skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展...

      grub4dos菜单编辑器 grubfordos菜单编辑器 学习grub4dos菜单编辑的利器 menu.lst菜单编辑器 menu.lst编辑器 它是用grub4dos引导学习menu.lst最好的方式 希望对大家有帮助 杀毒软件会报毒,但是大家不必担心无任何...

      【java代码之美】 -- java必会的工具库,减少代码量的利器(csdn)————程序

      《plc综合开发利器——codesys基础编程及应用指南》

      文本替换的利器,批量文本替换的不二之选,站长必备,挂马网页杀手,支持所有纯ansi文件,支持gbk/unicode/utf8编码的htm、html、asp、java、php等文件,可自定义所支持的文件类型,支持16进制替换,支持单行和多行...

      unigui 是delphi fan 开发web应用的利器,快捷而又无需...笔者将网上的js富文本编辑器wangeditor引入unigui,并在wangeditor中自定义菜单,用 ajax调用unigui的文件上传控件,巧妙的解决图片、附件、视频的上传问题。

      前端框架利器——bootstrap

      crm——销售管理之利器.doc

      ftp利器——filezilla,filezilla_3.13.1_win64-setup.exe

      文本替换的利器,批量文本替换的不二之选,站长必备,挂马网页杀手,支持所有纯ansi文件,支持gbk/unicode/utf8编码的htm、html、asp、java、php等文件,可自定义所支持的文件类型,支持16进制替换,支持单行和多行...

      深度学习利器——tensorflow程序设计 ,深度学习框架tensorflow入门

    global site tag (gtag.js) - google analytics
    网站地图