Java编码解码的秘密

关乎编码、解码,我觉得做个假设比较好。

假设A会粤语,不懂普通话。

B会普通话,不懂粤语。

但是,这个不妨碍他们交流,因为他们都会汉语。

A可以把他的意思表达为汉字形式呈现给B,B就可以理解A要表达的意义。

(大概有这方面的含义,但编码解码不止这样简单)

然后我突然想到了一个更好的实例。

据说,中途岛战争前美国破解了日本的密码本。

整个战争的走向都彻底改变。

假设美国有美国的密码本MA,日本有日本的密码本MB。

假设日本部队1向部队2发密保,日语表达形式为Text-1,

经过密码本编码后,成功转换为Text-s1;

Text-s1经过发送,成功的被日本部队2接收到,

部队2拿出密码本MB,成功把Text-s1解码为Text-1。

假设,美军也截获到了这份电文Text-s1,但是美军只有MA,没有MB,

美军用自己的密码MA解码,收获了一大波‘???’乱码。

假设美军突然有了MB,那么必然可以解码出来Text-1。

当然这里有人会问,美国人能认识日文Text-1吗?

这个就不需要我们考虑了。

言归正传,字符集就是充当密码本的存在。

字符集就是一本字符对应字节的大字典。

字符就是人类的文字,字节就是机器的文字,也就是是01代码。

编码的过程就是按照某一字符集的规则,把字符转换为01代码。

解码的过程就是按照某一字符集的规则,把字节转换为字符。

其实,真相就是这么简单。

你可能感兴趣的:(Java编码解码的秘密)