unicode编码集 和 unicode存储编码 对应规则
来源:互联网 发布:北京点知教育 编辑:程序博客网 时间:2024/06/06 12:52
| Unicode符号范围 | UTF-8编码方式 n | (十六进制) | (二进制)---+-----------------------+------------------------------------------------------ 1 | 0000 0000 - 0000 007F | 0xxxxxxx 2 | 0000 0080 - 0000 07FF | 110xxxxx 10xxxxxx 3 | 0000 0800 - 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 4 | 0001 0000 - 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 5 | 0020 0000 - 03FF FFFF | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 6 | 0400 0000 - 7FFF FFFF | 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 表 1. UTF-8的编码规则
已知"严"的unicode是4E25(1001110 00100101), 根据上表, 可以发现4E25处在第三行的范围内(0000 0800 - 0000 FFFF), 因此"严"的UTF-8编码需要三个字节, 即格式是"1110xxxx 10xxxxxx 10xxxxxx". 然后, 从"严"的最后一个二进制位开始, 依次从后向前填入格式中的x, 多出的位补0. 这样就得到了, "严"的UTF-8编码是 "11100100 1011100010100101", 转换成十六进制就是E4B8A5.
Unicode规范中定义, 每一个文件的最前面分别加入一个表示编码顺序的字符, 这个字符的名字叫做"零宽度非换行空格"(ZERO WIDTH NO-BREAK SPACE), 用FEFF表示. 这正好是两个字节, 而且FF比FE大1.// Big Endian(FEFF) Little Endian(FFFE)NOTE:如果一个文本文件的头两个字节是FE FF, 就表示该文件采用大头方式; 如果头两个字节是FF FE, 就表示该文件采用小头方式.
上一节已经提到, Unicode码可以采用UCS-2格式直接存储. 以汉字"严"为例, Unicode码是4E25, 需要用两个字节存储, 一个字节是4E, 另一个字节是25. 存储的时候, 4E在前,25在后, 就是Big endian方式; 25在前, 4E在后, 就是Little endian方式.// Big Endian(4E25) Little Endian(254E)因此, 第一个字节在前, 就是"大头方式"(Big endian), 第二个字节在前就是"小头方式"(Little endian).
参考链接
1 0
- unicode编码集 和 unicode存储编码 对应规则
- unicode编码规则
- unicode编码规则
- unicode 和 GB2312 编码对应表
- CSS 中文字体对应英文和Unicode编码
- 打印出字符串对应的Unicode编码和GB2312编码
- 汉字对应的unicode编码
- unicode编码和ansi编码
- ASCII编码 和 UNICODE编码
- Unicode编码和ANSI编码
- ASCII编码和Unicode编码
- 转载-编码和unicode
- ASCII和Unicode编码
- 文字编码和Unicode
- Python编码和Unicode
- Python编码和Unicode
- Python编码和Unicode
- ANSI和unicode编码
- Hive版的Pivit和Unpivot实现方式
- 深入浅出Java Annotation(元注解和自定义注解)
- ibatis和mybatis的区别
- 自定义的星级评分 starBar
- 关于waveOutOpen初始化
- unicode编码集 和 unicode存储编码 对应规则
- iOS - Category and Extension
- having的用法以及与where区别介绍
- vs2013如何创建以及引用x64的动态链接库
- 大话WEB开发必备神器
- Java处理js输入特殊字符(如“+、@、¥”)
- 如何用消息系统避免分布式事务?
- 关于掌控力从自身做起从身边事做起
- 一个整数中1的个数