zoukankan      html  css  js  c++  java
  • 关于utf-8(网上查阅)

    如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节。而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。 UTF-8转换表表示如下:
    Unicode/UCS-4
    bit数
    UTF-8
    byte数
    备注
    0000 ~
    007F
    0~7
    0XXX XXXX
    1

      
    0080 ~
    07FF
    8~11
    110X XXXX
    10XX XXXX
    2

      
    0800 ~
    FFFF
    12~16
    1110XXXX
    10XX XXXX
    10XX XXXX
    3
    基本定义范围:0~FFFF
    1 0000 ~
    1F FFFF
    17~21
    1111 0XXX
    10XX XXXX
    10XX XXXX
    10XX XXXX
    4
    Unicode6.1定义范围:0~10 FFFF
    20 0000 ~
    3FF FFFF
    22~26
    1111 10XX
    10XX XXXX
    10XX XXXX
    10XX XXXX
    10XX XXXX
    5
    说明:此非unicode编码范围,属于UCS-4 编码
    早期的规范UTF-8可以到达6字节序列,可以覆盖到31位元(通用字符集原来的极限)。尽管如此,2003年11月UTF-8 被 RFC 3629 重新规范,只能使用原来Unicode定义的区域, U+0000到U+10FFFF。根据规范,这些字节值将无法出现在合法 UTF-8序列中
    400 0000 ~
    7FFF FFFF
    27~31
    1111 110X
    10XX XXXX
    10XX XXXX
    10XX XXXX
    10XX XXXX
    10XX XXXX
    6
    实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成, 首字节连续的1的个数表示字符编码所需的字节数。
    Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
    注:Unicode转换为UTF-8需要的字节数可以根据这个规则计算:如果Unicode小于0X80(Ascii字符),则转换后为1个字节。否则转换后的字节数为Unicode二进制位数减1再除以5。
  • 相关阅读:
    java类加载全过程
    pyAggr3g470r 3.6 发布,新闻聚合器
    fourinone分布式协调设计解析
    修改openJDK7的javac,使得java支持单引号字符串
    SabreDAV 1.8.0 发布,集成 WebDAV 系统
    openSUSE 12.3 里程碑 1 发布
    GroupOffice 4.0.123 发布
    nagios总结与基本配置模板
    Zorin OS 6.1 发布,基于Ubuntu的Linux
    Ehcache 2.6.2 发布,Java 缓存框架
  • 原文地址:https://www.cnblogs.com/jiang2538406936/p/5202847.html
Copyright © 2011-2022 走看看