Unicode编码(UTF8/UTF16)
来源:互联网 发布:java怎么与mysql连接 编辑:程序博客网 时间:2024/05/17 10:41
- 本文主要涉及utf-8以及utf-16编码.
- 一般我们谈论Unicode编码我们谈论的是UTF-16编码
- UTF-16(Unicode)
UTF-16中的基本单位是两个字节的码元,基本的码元范围是(0x0000-0xFFFF),UTF-16的字符映射范围是(U+0000,U+10FFFF),当一个生僻字符需要使用0xFFFF以上的映射范围时,其需要使用两个码元(4Byte)进行表示.其映射规则如下第一个码元(前导代理)范围:0xD800 - 0xDBFF第二个码元(后尾代理)范围:0xDC00 - 0xDFFF有:(0xDBFF-0xD800+1)*(0xDFFF-0xDC00+1) === (0x10FFFF-0xFFFF)双射所以(0xD800 - 0xDBFF)范围内的码元不能单独表示字符,其必须与后尾代理一起构成一个完整字符.一般来说,大部分编程语言字符串的内存编码都使用UTF-16进行统一,java class文件编码(jvm内部),python3内存表示以及javaScript字符串的内存表示都使用了UTF-16.
- UTF-8是UTF-16的缩略版本,其使用1-6个字节存储数据,在某些情况下可以大大减少存储空间,所以一般保存到文件时会选择utf-8,减少存储空间.
- 一般来说,我们对于内存的编码控制较少,最多会在调用length之类方法时有影响(比如java中String的length方法只是很简单的统计码元个数,并不对辅助平面内的字符进行区分),比如”\uD834\uDF06”.length() –> 返回2;javaScript的也是如此,但python则会将其识别为一个字符,返回1.).更多的保存到文件时的编码控制,会涉及到UTF-8这才是我们最常接触的编解码部分.
0 0
- Unicode编码(UTF8/UTF16)
- Ansi,UTF8,UTF16,Unicode,ASCII编码
- unicode, utf8, utf16, utf32
- 字符编码ASCII、UNICODE与UTF8,UTF16的含义等
- ansi、utf8、utf16、utf32、unicode 编码规则资料
- UTF8 与 UTF16 编码
- ANSI - Unicode UTF16 - Unicode UTF8 转换
- UTF8,UTF16的编码说明
- 转:对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 对字符编码Unicode,ISO 10646,UCS,UTF8,UTF16的理解
- 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 大端小端,ascii,unicode,utf8,utf16,utf32,gb2312,gbk,gb18030等字符编码问题
- 大端小端,ascii,unicode,utf8,utf16,utf32,gb2312,gbk,gb18030等字符编码问题
- 大端小端,ascii,unicode,utf8,utf16,utf32,gb2312,gbk,gb18030等字符编码问题
- C中的volatile用法
- matlab 可视化 —— imagesc、
- 英文字母和中文汉字在不同字符集编码下的字节数
- Python学习笔记 —— 元组
- [AngularJS面面观] 9. scope事件机制 - 基本概念以及生命周期
- Unicode编码(UTF8/UTF16)
- 【HTML笔记四】认识标签三
- 01背包问题-java
- [LeetCode] Bitwise AND of Numbers Range 数字范围位相与
- LinearLayout 属性详解
- Unity协同
- 《CSAPP》读书笔记:面向高速缓存编程
- 矩阵键盘扫描程序
- 软件开发中的deadline该怎么定