文件编码的基本原理以及在vim或其他地方的编码
我不明白为什么VIM中有文件编码的基本原理以及在vim或其他地方的编码,vim,unicode,encoding,utf-8,Vim,Unicode,Encoding,Utf 8,我不明白为什么VIM中有编码和文件编码 据我所知,文件就像一个字节数组。当我们创建一个文本文件时,我们创建一个字符(或符号)数组,并使用编码X将这个字符数组编码为一个字节数组,然后将字节数组保存到磁盘。在文本编辑器中读取时,它使用编码X对字节数组进行解码,以重建原始字符数组,并根据字体用图形显示每个字符。在这个过程中,只涉及一个编码 在,就是说, 编码设置vim如何在内部表示字符。Utf-8 对于大多数风格的Unicode来说都是必需的 fileencoding设置特定文件的编码(本地到本地)
编码
和文件编码
据我所知,文件就像一个字节数组。当我们创建一个文本文件时,我们创建一个字符(或符号)数组,并使用编码X将这个字符数组编码为一个字节数组,然后将字节数组保存到磁盘。在文本编辑器中读取时,它使用编码X对字节数组进行解码,以重建原始字符数组,并根据字体用图形显示每个字符。在这个过程中,只涉及一个编码
在,就是说,
编码设置vim如何在内部表示字符。Utf-8
对于大多数风格的Unicode来说都是必需的
fileencoding设置特定文件的编码(本地到本地)
缓冲区)
“vim如何在内部表示字符”“vs”特定文件的编码”。。。重新编译Unicode与UTF-8?如果是这样,用户为什么要为前者烦恼呢
有什么提示吗?我先说我无论如何都不是vim专家 我认为你思维中的缺陷在于: 在文本编辑器中读取时,它使用编码X对字节数组进行解码,以重建原始字符数组,并根据字体用图形显示每个字符 问题是,vim不负责在这里呈现glyph。vim从文件中读取字节,在内部存储它们,并将字节发送到终端,终端使用字体呈现字形。vim本身从未接触过字体,因此从未真正需要理解“字符”。它只需要在内部处理在文件、内部缓冲区和终端之间来回移动的字节 因此,可能涉及三种不同的字节存储:
- (内部)
假设如下:如果将
编码设置为Unicode编码,则可以安全地处理可能遇到的任何字符。但是,在某些情况下,这些Unicode编码可能太大,无法在非常有限的系统中轻松地放入内存,因此在这种情况下,如果您知道自己在做什么,您可能希望使用更专业的编码。您是对的;大多数程序都有固定的内部编码(就C数据类型而言,要么是char
,它主要使用基础语言环境,可能无法表示所有字符,要么是UTF-8;要么是wchar
(宽字符),可以表示Unicode范围)。这种选择主要是由编程语言和可用的API驱动的(因为来回转换既繁琐又没有效率)
Vim,因为它支持多种平台(从开发开始的旧Amiga开始),面向程序员,并且高度高级的用户允许配置内部表示
启发法
- 只要所有的角色都是可识别的,你就不必在意
- 如果某些文件看起来不正确,则必须通过
“fileencodings”
教导Vim识别编码,或明确指定编码
- 如果某些字符显示不正确,则需要切换
“编码”
。有了utf-8
,您就安全了
- 如果您仅在终端上有问题,请使用
'termcodening'
正如您所看到的,虽然初学者可能会感到困惑,但实际上您拥有所有可用的功能