在文本文件中,因其编码不同的原因,很容易出现乱码现象,在数据融合过程中,很有必要将编码问题统一化,方便不同程序、工具读取的要求。本篇给大家提供批量性对文本文件进行编码转换。
编码知识普及
不同计算机、不同程序对字符编码的识别都不一,容易因为不同国家、电脑系统、语言等因素,引起文件交换过程中出现编码不对的乱码现象。
因笔者不是专业程序员,仅提供自己的一些简单理解,以供大家作个参考。
打个比方,不同国家,就是不同的印刷厂,他们有自己的印刷磨具,将原料倒入字体磨具中,然后成型了文字,印刷到纸张上(对应的就是电脑屏幕显示出来)。
印刷磨具就类型一个大大的矩阵,按编号在里面排文字,例如简体中文印刷厂(字体页码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的操作环境下,快速转换,使用体验非常棒。
有了本篇的功能,就再不怕繁琐的文件编码导致的乱码问题。