app教程网 综合百科 linux 中文显示(linux 显示中文乱码)

linux 中文显示(linux 显示中文乱码)

在vim中编辑不同编码的文件时需要注意的几点

本文讲解了vim在编辑多字节编码文档(中文)时需要了解的一些基础知识。注意不涉及gvim,gvim只是简单的指字符终端下的vim。

vim编码的基本知识:

1、有三个变量:

编码——该选项用于缓冲文本(您正在编辑的文件)、寄存器、Vim脚本文件等。您可以将“编码”选项视为Vim内部操作机制的设置。

file encoding——这个选项是vim在写文件时使用的编码类型。

$ Term encoding——该选项表示用于输出到客户端终端($ Term)的编码类型。

2、这三个变量的默认值:

编码——和系统当前的区域设置是一样的,所以编辑文件的时候要考虑当前的区域设置,不然要设置的东西就多了。

file encoding——当打开文件时,vim自动识别编码,文件编码是识别的值。如果为空,则在保存文件时使用该编码。如果编码没有被修改,

该值是系统的当前区域设置。

$ term encoding——缺省空值,即不经编码转换输出到终端。

可以看出,在编辑不同的编码文件时需要注意的不仅仅是这三个变量,还有三个关键点:系统当前的区域设置,文件本身的编码,自动编码识别,客户运行vim的终端使用的编码类型。这三个关键点影响三个变量的设置。

如果有人问:为什么我用vim打开中文文档会出现乱码?

答案是不确定的。原因上面已经提到了。不了解这三个关键点,不了解这三个变量的设定值,出现乱码是正常的,但乱码不出现是巧合。

我们来看看常见情况下这三个关键点的值,以及这种情况下这三个变量的值:

1、语言环境——目前,大多数Linux系统已经采用utf-8作为默认语言环境,但也可能不是。例如,某些系统使用中文区域设置zh_CN.GB18030。当区域设置为utf-8时,

vim启动后,编码将设置为utf-8,这是最好的兼容方式,因为如果utf-8用于内部处理,则无论外部存储编码如何,都可以进行无损转换。区域设置决定了vim内部处理数据的编码。

也就是编码。

2、文件编码和自动编码识别——这方面涉及到各种编码规则,就不一一赘述了。但是应该理解,文件编码类型不存储在文件中,也就是说,

本文来自网络,不代表本站立场,转载请注明出处:https: