编码解码过程中的信息丢失现象

编码解码过程中会出现信息丢失,即经过一系列编码和解码步骤后,不能还原得到原始的字符流(或者字节流)。出现信息丢失的本质原因是:在编码解码过程中,出现不能在选定的编码方案中找到相应映射记录的字符(或者字节序列),且解决方案是使用特殊的字节序列(或者字符)进行编码(或者解码)。
因此,平时经常以为的“编码解码过程中出现信息丢失,是由于在过程中采用了不同的编码方案”的认知是错误的。
比如有如下图所示的编码解码过程,在整个过程中,所选的编码解码方案都不一样。如果在整个过程中,不存在“有字符(或者字节序列)在选定的编码方案中找不到相应映射记录”的情况,那么可从字符流3反向还原到字符流1;如果在整个过程中,存在“有字符(或者字节序列)在选定的编码方案中找不到相应映射记录”的情况,且解决方案是使用特殊的字节序列(或者字符)进行编码(或者解码),那么就不能从出现该情况之后得到的字符流或者字节流反向还原到字符流1;如果在整个过程中,存在“有字符(或者字节序列)在选定的编码方案中找不到相应映射记录”的情况,但是解决方案是一旦出现这种情况就立即停止,那么能够从出现该情况之前得到的字符流或者字节流反向还原到字符流1。
编码解码过程中的信息丢失现象_第1张图片

备注:以上的例子的起点是字符流,起点换成是字节流也是同理。

你可能感兴趣的:(数据区)