Unicode:
unicode.org制定的编码机制, 要将全世界常用文字都函括进去.
在1.0中是16位编码, 由U+0000到U+FFFF. 每个2byte码对应一个字符; 在2.0开始抛弃了16位限制, 原来的16位作为基本位平面, 另外增加了16个位平面, 相当于20位编码, 编码范围0到0x10FFFF.
UCS:
ISO制定的ISO10646标准所定义的 Universal Character Set, 采用4byte编码.
Unicode与UCS的关系:
ISO与unicode.org是两个不同的组织, 因此最初制定了不同的标准; 但自从unicode2.0开始, unicode采用了与ISO 10646-1相同的字库和字码, ISO也承诺ISO10646将不会给超出0x10FFFF的UCS-4编码赋值, 使得两者保持一致.
UCS的编码方式:
UCS-2, 与unicode的2byte编码基本一样.
UCS-4, 4byte编码, 目前是在UCS-2前加上2个全零的byte.
UTF: Unicode/UCS Transformation Format
UTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 通常作为外码. 有以下优点:
* 与CPU字节顺序无关, 可以在不同平台之间交流
* 容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码)
UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0x10FFFF之间, 基本上就是unicode编码的实现. 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输的外码.
UTF-16是unicode的preferred encoding.
UTF-32, 仅使用了unicode范围(0到0x10FFFF)的32位编码, 相当于UCS-4的子集.
UTF与unicode的关系:
Unicode是一个字符集, 可以看作为内码.
而UTF是一种编码方式, 它的出现是因为unicode不适宜在某些场合直接传输和处理. UTF-16直接就是unicode编码, 没有变换, 但它包含了0x00在编码内, 头256字节码的第一个byte都是0x00, 在操作系统(C语言)中有特殊意义, 会引起问题. 采用UTF-8编码对unicode的直接编码作些变换可以避免这问题, 并带来一些优点.
中国国标编码:
GB 13000: 完全等同于ISO 10646-1/Unicode 2.1, 今后也将随ISO 10646/Unicode的标准更改而同步更改.
GBK: 对GB2312的扩充, 以容纳GB2312字符集范围以外的Unicode 2.1的统一汉字部分, 并且增加了部分unicode中没有的字符.
GB 18030-2000: 基于GB 13000, 作为Unicode 3.0的GBK扩展版本, 覆盖了所有unicode编码, 地位等同于UTF-8, UTF-16, 是一种unicode编码形式. 变长编码, 用单字节/双字节/4字节对字符编码. GB18030向下兼容GB2312/GBK.
GB 18030是中国所有非手持/嵌入式计算机系统的强制实施标准.
详细解决方案
对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
热度:97 发布时间:2024-01-19 21:16:39.0
相关解决方案
- 这样的字符编码如何转换=?GB2312?Q?=D6=F7=CC=E2?=
- web.config里"gb2312"的有关问题
- gb2312,utf-8两难,该如何解决
- big5 utf8 sqlserver编码有关问题
- 是Framwork2.0的BUG还是 只是编码不同的有关问题,关于Encoding.Unicode.GetString的有关问题
- 小弟我现在最关心的是 谁有现成的好的 UTF-8 转 GB2312 的C#代码
- urf-8,gb2312,urlencode的编码有关问题
- 100分求救! utf-8 gb2312 格式有关问题
- UTF-7 Utf-8 Unicode 小弟我不太懂啊 !
- 怎么 sql 語句中使用 unicode 輸入漢字
- Cannot convert Unicode string to Ebcdic string
- svn: 索引中的条目从本地编码转换到 UTF8 失败
- org.apache.jasper.JasperException: Unsupported encoding: GB2312
- 大家帮帮忙吧 Unsupported encoding: gb2312
- 求utf to gb2312 转换函数解决方法
- 批改response.charset="gb2312"和在dreamweaver中修改页面属性->标题编码为Gb2312有什么区别
- 怎么判断一个文件是不是以 Unicode 文件格式创建
- php字符串截取(UTF-八/GB2312)
- 无效@Command原语 ,指定的 'page contentType="application/vnd.ms-excel;charset=GB2312"' 选项未知或无效。 代码如下,该怎么解决
- 使用"SET NAMES UTF8"后,出现乱码解决思路
- 有哪位高手理解编码知识,utf-8,gbk,big2,unicode 之间的转换?请高手帮忙
- Unicode、UTF-8 跟 ISO8859-1区别
- 崭新UNICODE查表工具发布 ―― Unicode XMan 2.0 (20120404) ★ 【完整版、在线版发布】
- jsp utf 乱码异常 com.caucho.jsp.JspParseException: illegal utf8 encoding at 0xdf
- 字符集编码详解【ASCII 、GB2312、GBK、GB18030、unicode、UTF-八】(转)
- 关于GBK、GB2312、UTF8其间的区别
- 关于XML操作的encoding="gb2312"的有关问题
- web开发用什么编码好?gbk?gb2312?utf-8?解决思路
- <%@ page contentType="text/html;charset=gb2312" import="vo.dao."%>解决办法
- String department=new String((request.getParameter("department")).getBytes("ISO8859-1"), "GB2312");解决方法