• 个人永久性免费-Excel催化剂功能第108波-批量转换文本文件编码


    在文本文件中,因其编码不同的原因,很容易出现乱码现象,在数据融合过程中,很有必要将编码问题统一化,方便不同程序、工具读取的要求。本篇给大家提供批量性对文本文件进行编码转换。

    编码知识普及

    不同计算机、不同程序对字符编码的识别都不一,容易因为不同国家、电脑系统、语言等因素,引起文件交换过程中出现编码不对的乱码现象。

    因笔者不是专业程序员,仅提供自己的一些简单理解,以供大家作个参考。

    打个比方,不同国家,就是不同的印刷厂,他们有自己的印刷磨具,将原料倒入字体磨具中,然后成型了文字,印刷到纸张上(对应的就是电脑屏幕显示出来)。

    印刷磨具就类型一个大大的矩阵,按编号在里面排文字,例如简体中文印刷厂(字体页码936)某个格子上存储了中文字“中”字。

    同样地在繁体字印刷厂(字体页码950)的大矩阵中,也存有“中”字,但有可能两个印刷厂的排列顺序不一,甚至某些印刷厂压根就没有这个字,例如英文世界中,就没有“中”字,当我们在英文系统中,读取中文文字时,就因为他们的印刷厂里,在对应的矩阵位置上不是存储着“中字”,就会显示乱码。

    在互联网世界中,大家都乐于使用utf-8这样的巨型印刷厂,里面包含全世界的文字,所以使用utf-8的编码,假如程序去读取它时,用了utf-8的大矩阵,就不会出现乱码。

    比较直观地查看文件字体编码的文本编辑器是NotePad++,如下图所示,文件编码是GB2312,简单中文。

    如果我用繁体中文的编码来显示,就会出现乱码,如下图所示。
    因为英文和数字的编码,全世界的编码矩阵都是将他们排的位置相同,所以一般它们就不会乱码。现在是中文乱码了。

    利用NotePad++,可以将文件转换为UTF-8等Unicode通用字符。
    在正常显示的编码下,可以将其转换为常用的UTF-8格式,或将已经是UTF-8的文件,转换为ANSI编码格式(自己计算机的本地编码,在简体中文系统里就是GB2312)。

    大量的文本文件转换怎么办?

    前面介绍的方法,可以使用NotePad++,打开一个文件,手动转换文件编码,但如果大批量的文本文件需要转换,这种方法不现实。

    所以Excel催化剂给大家准备了批量转换的功能,只需简单配置一下,即可实现自己想要的转换效果。

    功能实现

    只需按要求准备四列内容,分别为
    源文件路径 源文件编码 目标文件路径 目标文件编码

    如果不知道自己的源文件编码格式,可以留空,程序尝试去识别,同样的目标文件编码为空时,就用系统当前的编码如简体中文系统,就用GB2312。

    编码怎么填写呢?程序支持使用编码名称和PageCode两种写法,如简体中文,使用936或GB2312都可以。具体编码,可以参照示例文件,最终共享到百度网盘中。

    以上的中文编码,主要有简体中文和繁体中文,比较常用的是最上方两个GB2312和big5,下方这些,应该是属于上方这两个编码不够用了,在原基础上新增编码矩阵,是原来的文字的超集,若汉字是常用字,GB2312包含了,在GB18030里一样包含,相反生僻字,只能在GB18030找得到。

    使用步骤

    非常简单,选定四列内容后,点击按钮【批量转换文本文件编码】,即可完成。

    源文件路径和目标文件路径,尽量不要相同,防止误操作不能覆盖源文件数据。

    结语

    文件编码是个较为复杂的知识,不明白也没太大问题,只需会使用工具,想要什么效果,生成就是了。

    Excel环境下,最适合做批量化的操作,只需相应的配置映射信息,即可供程序在不离开Excel的操作环境下,快速转换,使用体验非常棒。

    有了本篇的功能,就再不怕繁琐的文件编码导致的乱码问题。

  • 相关阅读:
    网页、JavaScript 数据类型
    网页javascript
    网页CSS
    使用ButterKnife无法inject view的解决办法
    项目管理实践 -- 健身小管家(Fitness housekeeper)的管理
    XML的序列化与反序列化
    JAVA虚拟机JVM-7.多线程常见问题刨析
    JAVA虚拟机JVM-6.锁优化
    JAVA虚拟机JVM-5.多线程以及锁
    JAVA虚拟机JVM-4.线程模型
  • 原文地址:https://www.cnblogs.com/ExcelCuiHuaJi/p/12100572.html
Copyright © 2020-2023  润新知