文本格式和二进制格式的区别

聊聊字符集,我个人理解不管是文本数据UTF-8、GBK编码格式还是二进制数据,其实内存存储的永远都是“01”数据。二进制存储就是将内存“01”数据拷贝到磁盘里。文本在内存中也是“01”数据,存储文本数据就是将“01”数据拷贝到磁盘里。所以存储过程是一样的。不一样的是解析数据的过程,二进制存储的数据通常是一个结构体对象,因此需要对应的结构体来载入磁盘数据。而UTF-8的数据,就需要UTF-8的字符映射表来解析数据。

您的理解是正确的。无论是文本数据(如UTF-8、GBK等编码格式)还是二进制数据,它们在计算机内存中的最终表示都是基于二进制(即“0”和“1”的序列)。这些二进制数据是计算机处理信息的基础。

存储过程

在存储数据时,无论是文本还是二进制数据,计算机都会将这些数据转换为二进制格式,并存储在磁盘上。对于文本数据,如UTF-8或GBK编码的文本,这些编码方案定义了如何将字符映射到二进制序列。例如,UTF-8编码使用1到4个字节来表示一个字符,而GBK编码则使用1到2个字节。

解析数据的过程

当从磁盘读取数据时,计算机需要知道如何将这些二进制数据转换回原始的数据格式。对于二进制数据,这通常意味着需要一个与原始数据结构相匹配的结构体或类来解析数据。这是因为二进制数据通常包含有关数据结构和类型的信息,这些信息对于正确解析数据是必要的。

对于文本数据,解码过程需要使用相应的字符编码映射表(如UTF-8字符映射表)。当读取UTF-8编码的文本时,计算机会使用UTF-8的编码规则来解析二进制数据,将其转换回原始的字符序列。

总结

因此,尽管文本和二进制数据的存储过程在技术上都是将数据转换为二进制并存储在磁盘上,但在解析或读取数据时,它们需要不同的方法来还原原始的数据结构和格式。这是因为文本数据和二进制数据在编码和解码时使用的规则和方法不同。

还有一个细节

平时我们再敲代码的时候,写入"我是帅哥" 这个过程已经开始编码了。例如:搜狗输入法默认的编码格式是UTF-8

string str = "我是帅哥";

我们编辑器大多数情况也是使用UTF-8的格式来显示数据。牛头对马尾,因为才不会出现乱码。

你可能感兴趣的:(吹牛逼,开发语言)