前言
自从踉跄尝试开发,不停地被提醒自己基本功的薄弱——人家随随便便抛出一句“这本来就是二进制文件(无法解码很正常)”,我却纳闷了半天到底什么是二进制文件。没办法,基础差就要好好学习。
来吧,今日关键词:二进制文件 vs. 文本文件
数据在物理上的存储方式是二进制的,即由0/1字符串构成。而我们解读这些的方式有两种:基于字符编码,和基于值编码。
基于字符编码
基于字符编码,即每个我们肉眼可读的字符都有唯一对应的0/1字符串,我们读、写这些字符都使用同一套编码方式。
如果某文件的数据使用基于字符的编码,那么该文件即为“文本文件”。
常见的基于字符的编码有:ASCII码,Unicode编码。
1. ASCII码我们都比较熟悉了,它是一种定长编码,编码规则为:
1字节 0xxxxxxx
2. Unicode编码中比较常见的是UTF-8编码,其为变长编码,即某一个字符的UTF-8编码有可能是1字节,也有可能是多字节。具体编码规则如下: