java字符编码系列一

java字符编码系列一

ID:10416622

大小:50.00 KB

页数:6页

时间:2018-07-06

java字符编码系列一_第1页
java字符编码系列一_第2页
java字符编码系列一_第3页
java字符编码系列一_第4页
java字符编码系列一_第5页
资源描述:

《java字符编码系列一》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础收藏这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考。为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问题,特别是乱码问题,我觉得组成一个系列来描述和分析更好一些,包括三篇文章:第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础第二篇:JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换第三篇:JAVA字符编码系列三:Java应

2、用中的编码问题第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础本部分采用重用,转载一篇文章来完成这部分的目标。来源:holen'blog对字符编码与Unicode,ISO10646,UCS,UTF8,UTF16,GBK,GB2312的理解地址:http://blog.donews.com/holen/archive/2004/11/30/188182.aspxUnicode:unicode.org制定的编码机制,要将全世界常用文字都函括进去.在1.0中是16位编码,由U+0000到U+FFFF.每个2byte码对应一个字符;在2.0开始抛

3、弃了16位限制,原来的16位作为基本位平面,另外增加了16个位平面,相当于20位编码,编码范围0到0x10FFFF.UCS:ISO制定的ISO10646标准所定义的UniversalCharacterSet,采用4byte编码.Unicode与UCS的关系:ISO与unicode.org是两个不同的组织,因此最初制定了不同的标准;但自从unicode2.0开始,unicode采用了与ISO10646-1相同的字库和字码,ISO也承诺ISO10646将不会给超出0x10FFFF的UCS-4编码赋值,使得两者保持一致.UCS的编码方式:UCS-2,与unicode的2byte编码基

4、本一样.UCS-4,4byte编码,目前是在UCS-2前加上2个全零的byte.UTF:Unicode/UCSTransformationFormatUTF-8,8bit编码,ASCII不作变换,其他字符做变长编码,每个字符1-3byte.通常作为外码.有以下优点:*与CPU字节顺序无关,可以在不同平台之间交流*容错能力高,任何一个字节损坏后,最多只会导致一个编码码位损失,不会链锁错误(如GB码错一个字节就会整行乱码)UTF-16,16bit编码,是变长码,大致相当于20位编码,值在0到0x10FFFF之间,基本上就是unicode编码的实现.它是变长码,与CPU字序有关,但因

5、为最省空间,常作为网络传输的外码.UTF-16是unicode的preferredencoding.UTF-32,仅使用了unicode范围(0到0x10FFFF)的32位编码,相当于UCS-4的子集.UTF与unicode的关系:Unicode是一个字符集,可以看作为内码.而UTF是一种编码方式,它的出现是因为unicode不适宜在某些场合直接传输和处理.UTF-16直接就是unicode编码,没有变换,但它包含了0x00在编码内,头256字节码的第一个byte都是0x00,在操作系统(C语言)中有特殊意义,会引起问题.采用UTF-8编码对unicode的直接编码作些变换可以

6、避免这问题,并带来一些优点.中国国标编码:GB13000:完全等同于ISO10646-1/Unicode2.1,今后也将随ISO10646/Unicode的标准更改而同步更改.GBK:对GB2312的扩充,以容纳GB2312字符集范围以外的Unicode2.1的统一汉字部分,并且增加了部分unicode中没有的字符.GB18030-2000:基于GB13000,作为Unicode3.0的GBK扩展版本,覆盖了所有unicode编码,地位等同于UTF-8,UTF-16,是一种unicode编码形式.变长编码,用单字节/双字节/4字节对字符编码.GB18030向下兼容GB2312/

7、GBK.GB18030是中国所有非手持/嵌入式计算机系统的强制实施标准.-------------------------------什么是UCS和ISO10646?国际标准ISO10646定义了通用字符集(UniversalCharacterSet,UCS).UCS是所有其他字符集标准的一个超集.它保证与其他字符集是双向兼容的.就是说,如果你将任何文本字符串翻译到UCS格式,然后再翻译回原编码,你不会丢失任何信息.UCS包含了用于表达所有已知语言的字符.不仅包括拉丁语,希腊语,斯拉夫语,希

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。