最近做了一个关于GBK和UNICODE的测试,和大家分享一下。
直奔主题。
如果有一个字节流或文本,里面还有汉字,去理解里面的内容,必须了解它的编码。例如下图:
它具体是什么含义呢?有兴趣的朋友在继续往下看之前,可以试着用GBK和UNICODE的基础知识试着解码一下,如果不了解这些基础知识,那这篇文章也许正好是个开始,如果你对破译什么的感觉是比较酷的。哦,是的,GBK和UNICODE看来是目前主要的几种编码之一。先从此入手吧。
任何字节流或文本,如果只对应一种编码,就像全世界的人都说一种语言,那是一种理想的局面。但是实际上世界上的人说着不同的语言;而且语言还有历史的变化,会有不同时期的语言留下的文本需要我们去解读。计算机世界的这两种情况也都存在。
或者用某种编码可以打开,而用另外一种不能,那是一种次理想的局面,因为这样我们可以通过尝试各种编码,找到可以打开的那种编码。计算机编码世界应该有点想达成这样的局面,因为后来的编码想尽量兼容之前的编码,UNICODE和GBK的关系也许有点像这样。
实际我们能得到的是一种次次理想局面:有少量的字节流或文本,用不同的编码都能打开,得到了不同的结果,让我们/计算机困惑他们到底是什么意思。由于计算机在语义上没有人聪明,所以对计算机程序来说,这就是更大的挑战。打开的这个过程对计算机来说,有一种场合,就是软件阅读文本(内码)后展现出文字形状