美文网首页
什么是字符编码

什么是字符编码

作者: 从这到那 | 来源:发表于2017-03-05 15:03 被阅读0次

    什么是字符编码

    字符集

    简单的说字符集就是一张表,一张存储了文字和二进制对应的表。
    我们知道计算机存储信息都是以二进制来存储的,那么二进制又是用来表示我们所熟知的文字或者符号呢?这就需要一个表来标注好对应关系。在以前我们拥有很多的字符集,因为每个国家的字符都不太一样,都是各自为营制作字符集。后来有组织为了统一各个国家的字符,制作了Unicode 字符集,Unicode1.0版本在1991年10月发布。

    我们来看一下GB2312简体中文编码表
    这里列出一部分表:

    code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
    A1A0 · ˉ ˇ ¨
    A1B0
    A1C0 ± × ÷

    其中 这个对应的编码是A1A2
    上面给出的是中国的GB2312编码,但只适用于中文汉字。世界上有许多的语言,为了统一标准就有人做一个字符集来包含几乎所有的语言。这就是Unicode

    字符编码

    编码和字符集的不同在于,编码其实是一种算法。
    那既然我们已经有了字符集了,为什么我们还需要字符编码呢?
    理论上我们其实只需要在计算机中存储Unicode 这个字符集就够了。但实际情况是怎么样的呢?
    举个例子,我们存储a 这个字母。Unicode字符集和UTF-8存储对比

    Unicode 00000000 00000000 00000000 0110001
    UTF-8 01100001

    我们发现UTF-8占的空间要少的多。
    实际情况是因为那个时候的计算机存储不像现在有这么大,为了考虑到存储空间的限制,我们需要一个算法来减少字符集的存储空间。现在我们一直使用的UTF-8 就是字符编码。

    字符集和字符编码的关系

    像我们上文所说的 UnicodeUTF-8Unicode 是几乎涵盖了各个国家的文字和字符,UTF-8 则是目前用的最广的字符编码。UTF-8是为了减少Unicode的存储空间而设计的一种算法。

    参考

    字符编码
    十分钟搞清字符集和字符编码
    字符集和字符编码
    字符集历史和乱码问题(一)
    字符集历史和乱码问题(二)

    本博客著作权归从这到那所有,转载请注明出处
    

    相关文章

      网友评论

          本文标题:什么是字符编码

          本文链接:https://www.haomeiwen.com/subject/ijxegttx.html