美文网首页
[ 编码 ] UTF8编码

[ 编码 ] UTF8编码

作者: 一个好汉 | 来源:发表于2021-08-28 09:01 被阅读0次

    UTF-8 (UCS Transformation Format 8)是万维网上最常用的字符编码。每个字符由 1 到 4 个字节表示。UTF-8 与 ASCII 向后兼容,可以表示任何标准的 Unicode字符。

    前 128 个 UTF-8 字符与前 128 个 ASCII 字符(编号为 0-127) 精确匹配,这意味着现有的 ASCII 文本已经是有效的 UTF-8。所有其他字符都使用 2 到 4 个字节。每个字节都有一些用于编码目的的保留位

    Unicode 和 UTF-8 之间的转换关系表 ( x 字符表示码点占据的位 )

    码点的位数 码点起值 码点终值 字节序列 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6
    7 U+0000 U+007F 1 0xxxxxxx
    11 U+0080 U+07FF 2 110xxxxx 10xxxxxx
    16 U+0800 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
    21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
    31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

    在ASCII码的范围,用一个字节表示,超出ASCII码的范围就用字节表示,这就形成了我们上面看到的UTF-8的表示方法,这様的好处是当UNICODE文件中只有ASCII码时,存储的文件都为一个字节,所以就是普通的ASCII文件无异,读取的时候也是如此,所以能与以前的ASCII文件兼容。
    大于ASCII码的,就会由上面的第一字节的前几位表示该unicode字符的长度,比如110xxxxx前三位的二进制表示告诉我们这是个2BYTE的UNICODE字符;1110xxxx是个三位的UNICODE字符,依此类推;xxx的位置由字符编码数的二进制表示的位填入。越靠右的x具有越少的特殊意义。只用最短的那个足够表达一个字符编码数的多字节串。注意在多字节串中,第一个字节的开头"1"的数目就是整个串中字节的数目

    参考

    维基UTF-8
    MDN-UTF-8

    相关文章

      网友评论

          本文标题:[ 编码 ] UTF8编码

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