美文网首页
关于编码

关于编码

作者: 小小青蛙不怕风吹雨打 | 来源:发表于2017-02-07 15:51 被阅读0次

    需要区分的概念

    1. 码点。字符对应的数字,唯一定义字符,编码的基础。最重要的一个是Unicode,其中UCS-2子集最常用。
    2. 编码。字符对应的字节数组,存储传输时总是要用字节保存下来的。如utf-8,utf-16(LE|BE)。

    编程语言里字符串和字节数组的区别

    语言 字符串 字节数组
    C++ char[]
    C# string byte[]
    java String byte[]
    python unicode str

    c#的string,python的unicode,java的String才是字符串。他们默认是utf-16编码的。
    c++里的字符串实际是字节数组

    中文编码

    虽然想只了解Unicode,然而GB系列编码经常遇到。
    VS默认是GB2312编码,并且没有地方设置新建文件为utf-8编码(┬_┬)。

    简单记录下:
    ascii取值范围0x00-0x7f,共128字符。
    汉字不够用。没问题,有个ANSI编码标准,只要求是编码中的ascii码要保持不变。
    1980年,GB2312扩展ascii,有6763个汉字,682个符号,成为国家标准。
    1995年,GBK扩展GB2312,有21886个汉字,883个符号。两个字节表示。这时微软定义的。
    2000年,GB18030扩展GBK,包含更多汉字,加入民族语言,新加的字符有4个字节的,新的国家标准。
    可以统称GB简体编码,一般GBK就够了。

    ANSI标准有个弊端,不同的编码互相冲突。
    Big5是繁体字编码,与GBK就不兼容。这个时候,Unicode就来救场了。
    一个特别的地方,简体字和繁体字的unicode不重叠

    收集的资料

    wiki UTF-16
    wiki UTF-8
    彻底搞懂字符编码(unicode,mbcs,utf-8,utf-16,utf-32,big endian,little endian...)
    UTF-16的特殊字符
    字符编码笔记:ASCII,Unicode和UTF-8

    相关文章

      网友评论

          本文标题:关于编码

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