Unicode

作者: Asura_Luo | 来源:发表于2018-05-04 02:39 被阅读0次

    Unicode

    兼容问题

    由于ASCII存在字符含量过少的缺陷,所以不但我国自己搞出了国际码。其他国家也都设计出了符合自己国情的字符集

    但是这就带来了问题

    各个字符集之间不兼容怎么办?

    Unicode

    Unicode 4个字节32位

    真正有效范围: 0x0 - 0x 10ffff
    约十进制:1114112 个字符

    unicode相当于 “区位码”(也就是电脑中运行的),实际存储要按照相应的编码方案

    字符集 编码方案
    UTF-8
    UTF-16

    UTF-8的存储

    UNICODE编码(16进制) UTF8字节流(二进制)
    000000 - 00007F 0xxxxxx
    000080 - 0007FF 110xxxxx 10xxxxxx
    000800 - 00FFFF 1110xxxx 10xxxxxx 10xxxxxx
    090000 - 10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

    例子:

    比如 “啊” => UNICODE = 554A

    0x00554A 处于区间 000800 - 00FFFF

    所以格式为: 1110xxxx 10xxxxxx 10xxxxxx

    0x554a 二进制为 : 0101 0101 0100 1010

    所以实际存储的内容为:
    格式:
    1110xxxx 10xxxxxx 10xxxxxx
    填充:
    11100101 10010101 10001010
    实际则为:
    E5958A

    UTF-16的存储

    unicode 范围: 0x00000000 - 0x0010FFFF

    uft-16

    多语言字符区
    0x00000000 - 0x0000ffff => 占两个字节

    辅助平面区
    0x00100000 - 0x0010FFFF => 占四个字节

    以16位2字节进行对齐

    总的来说存储比较复杂。。。

    相关文章

      网友评论

        本文标题:Unicode

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