文件编码格式浅析(未完成)

如果用简单直接的方式我们可以把文件分为两类

  • 文本类型文件
  • 其他类型文件

文本类型文件的编码是逐字符进行的,每个字符的编码在任何语言任何类型计算机上的解释结果都是一样的,文本类型文件是本文分析的重点,后续会针对不同的编码方式进行详细的分析

其他类型的文件,比如png,zip,可执行程序等则需要依赖于特定的环境和对应的应用程序来解析,其编码格式也并不是逐字符进行的,后续我们会找几个文件具体分析一下

文本类型文件

简单来说,文本文件是基于字符编码的文件,每个字符对应一个固定的编码,顺序流式存取,在任何操作系统下的解释和编码结果都是一致的,文本文件除了所包含的字符以外没有任何其他信息。

常用文本编码类型有(点击看码表)

ASCII

American Standard Code for Information Interchange,美国信息交换标准代码

ASCII编码方案一共规定了128个字符对应的二进制表示,只占用了一个字节的后面7bit,最高位为0

比如文件里内容为10时的二进制编码
在这里插入图片描述

①. 行号
②. 指定编码的二进制数据,一行16字节
③. 指定编码的字符

其他类型文件

把文本文件之外的其他文件归为一类是因为这些文件并不是按字符进行的统一编码,每种类型的文件都有自己特定的编码方式。种类非常多,各有各的不同。此类文件通常习惯把文件最开始的几个字节作为文件类型的标识,比如:

类型文件头
JPEG (jpg)FF D8 FF
PNG (png)89 50 4E 47
GIF (gif)47 49 46 38
PDF(pdf)25 50 44 46 2D 31 2E
AVI (avi)41 56 49 20
ZIP Archive (zip)50 4B 03 04
RAR Archive (rar)52 61 72 21

Base64

讲Base64编码是从二进制到字符的过程,可以把二进制数据编码为可见的字符数据。可以用作HTTP POST和HTTP GET URL中的参数。

  • 实现原理
    将二进制的8位3字节按6位4字节的方式读取,
  • 示例
二进制编码方式对应码值对应字符
00110001 00110000 00110101ASCII编码31 30 35105
001100 010011 000000 110101Base64编码12 19 0 53MTA1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值