UltraEdit中的查找替换是一个很强大的功能,它不仅能快速完成内部的查找替换,还能完成外部的查找替换,并且多文件的查找替换耗时也很短。对于每天需要处理大量文件的程序员来说,这大大的节约了我们查找及修改的时间。但在使用过程中,细心的你会发现用查找替换功能去查找替换文本文件中的中文字符时,出现了乱码的情况。这是怎么一回事呢?下面我们来细致的讲解。
本文章主要介绍UltraEdit中使用查找替换功能查找替换文本文件时的乱码现象以及解决方案。
一、乱码现象
我们首先新建一个文件夹,在里面放入今天的配角“文本文件”。
然后在两个文本文件中写入中文、数字、字母,可以随意写入。
然后在UltraEdit中打开查找替换并选中待查找的文件目录,也就是刚才新创建的文件夹,如此,该文件夹下的两个文本文件就可以被定位到,可以理解为预处理。
然后在查找内容的框里输入文本文件1中的内容,然后点击查找。
可以在输出窗口中得到如图5的结果,找到0个文件与之匹配。
这是发生了什么?我们再一次在查找内容的框里输入文本文件1中的字母与数字试一试。
在输出窗口中提示已经找到,英文与数字没变化,但字母与数字之前的中文是乱码,这也是刚才查找失败的原因。
二、解决方案
欲解决这个问题,我们先从计算机编码讲起。
我们知道计算机最基础的运作储存都只有0和1,想要让计算机“知道”语言文字,也为了人与人之间能够使用,于是人们做了规定,将0—127分别对应英文的大小写字母以及一些特殊符号(ASCII编码),这样之后使用这些数就是使用对应的字符。
作为中国人,我们想要在计算机中显示中文,该如何办呢?我们就自己再定义一套新的编码,用来表征各个中文字符,例如GB系列的编码。而其它国家的人也会这样做,结果是各种编码相互交错,不同的编码规则造成交互的困难。
这个时候,国际标准化组织站了出来,它将全世界的文字符号做了统一的规定,诞生出了Unicode编码。这也是沿用至今的编码。而计算机为了储存方便,会使用UTF-8的编码,这是一种可变长度的编码,中文在其中使用三个字节储存。Unicode也就是UTF-16的编码,采用的是两个字节储存。
这与乱码有什么关系呢?除Windows以外的大部分操作系统,包括Linux、Mac、iOS、Android,都已经把UTF-8作为了默认编码,而文本文件采用的是UTF-8的储存方式。
这就是说Windows系统是不能直接处理UTF-8的编码的,虽然Win10也在改进,但还未完成。所以我们在UltraEdit中对该文本文件进行查找替换时编码处理方式不匹配,造成了乱码。
既然知道了原因,该如何解决呢?其实文本文件是可以转换编码方式的,我们将文本文件的编码方式换为ANSI,表示本地默认字符集(当前系统的语言编码)。
如此可以直接处理中文字符。
在文本文件中点击“文件”、“另存为”,然后选择ANSI编码,最后保存。
之后可以看到文本文件的下方编码已改变。
最后我们回到UltraEdit进行测试,在查找内容的框里输入与文本文件1相同的内容。
可以在输出窗口中看到已经能够正常显示。
注意事项:假如你需要查找的文本文件中存在希腊字母或者一些特殊的字符,如此换为ANSI编码就会丢失字符,Windows系统表示自己也无能为力,但日文、韩文亲测还是可行的,我们多数情况也不会使用特殊符号。
以上便是UltraEdit中使用查找替换功能查找替换文本文件时的乱码现象以及解决方案,希望对正为乱码而困惑的你有帮助。
总体来说UltraEdit的查找替换功能还是很强大的,在加之乱码问题的解决,相信你今后的使用会更加得心应手。