- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 收藏
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,
在这里记录下来以便日后参考。
为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各
种问题,特别是乱码问题,我觉得组成一个系列来描述和分析更好一些,包括三篇文章:
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
第二篇:JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
第三篇:JAVA字符编码系列三:Java应用中的编码问题
第一篇: JAVA 字符编码系列一:
Unicode,GBK,GB2312,UTF-8概念基础
Unicode:
制定的编码机制, 要将全世界常用文字都函括进去
在 1.0中是16位编码, 由U+0000到U+FFFF 每个2byte码对应一个字符; 在2.0开始抛弃
了16位限制, 原来的16位作为基本位平面, 另外增加了16个位平面, 相当于20位编码, 编
码范围0到0x10FFFF
UCS:
ISO制定的ISO10646标准所定义的 UniversalCharacterSet, 采用4byte编码
Unicode与UCS 的关系:
ISO与是两个不同的组织, 因此最初制定了不同的标准; 但自从unicode20开始,
unicode 采用了与 ISO 10646-1相同的字库和字码,ISO 也承诺ISO10646 将不会给超出
0x10FFFF 的UCS-4编码赋值, 使得两者保持一致
UCS 的编码方式:
UCS-2, 与unicode 的2byte编码基本一样
UCS-4,4byte编码, 目前是在UCS-2前加上2个全零的byte
UTF:Unicode/UCSTransformationFormat
UTF-8,8bit编码,ASCII不作变换, 其他字符做变长编码, 每个字符 1-3byte 通常作为外码
有以下优点:
* 与CPU字节顺序无关, 可以在不同平台之间交流
* 容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如
GB码错一个字节就会整行乱码)
UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0x10FFFF之间, 基本上就
是unicode编码的实现 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输
的外码
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 的直接编码作些变换可以避免这问题, 并带来一些优点
中国国标编码:
GB 13000: 完全等同于ISO 10646-1/Unicode2.1, 今后也将随ISO 10646/Unicode的标准更改
而同步更改
GBK: 对GB2312 的扩充, 以容纳GB2312字符集范围以外的Unicode2.1 的统一汉字部分,
并且增加了部分unicode 中没有的字符
GB 18030-2000: 基于GB 13000, 作为Unicode30的GBK扩展版本, 覆盖了所有unicode编
码, 地位等同于UTF-8,UTF-16, 是一种unicode编码形式 变长编码, 用单字节/双字节/4字
节对字符编码 GB18030 向下兼容GB2312/GBK
GB 18030是中国所有非手持/嵌入式计算机系统的强制实施标准
什么是 UCS 和 ISO 10646?
国际标准 ISO 10646 定义了 通用字符集 (UniversalCharacterSet,UCS) UCS 是所有其他
字符集标准的一个超集 它保证与其他字符集是双向兼容的 就是说, 如果你将任何文本字
符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息
UCS 包含了用于表达所有已知语言的字符 不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,
阿拉伯语,亚
您可能关注的文档
- 电梯(应急预案)培训.ppt
- 第4章经纬仪和角度测量1gai学案.ppt
- 江苏省徐州市睢宁县宁海外国语学校高中地理3.2地理环境的整体性学案.ppt
- 电力系统常识及调度术语解释.ppt
- 第4章控制阀学案.ppt
- 防蚊虫纱窗的设计.ppt
- 财经法规的判断题.doc
- 财经法规第二章.doc
- 财经法规第三章已完结.doc
- 财经法规第四章.doc
- 教师资格之中学英语学科知识与教学能力综合提升练习试题包含答案.docx
- 2023年监理工程师之合同管理模拟考试试卷包括详细解答.docx
- 2022-2023年房地产估价师之基本制度法规政策含相关知识训练试卷附有答案详解.docx
- 2023年教师资格之中学体育学科知识与教学能力模拟考试试卷含答案讲解.docx
- 2022-2023年一级建造师之一建建设工程项目管理通关模拟考试试卷附答案详解.docx
- 2023年质量员之市政质量基础知识考前冲刺训练试卷.docx
- 质量员之装饰质量专业管理实务练习题库.docx
- 《习作:介绍一种事物》第1课时 教学设计-2023-2024学年语文五年级上册统编版.docx
- 2022-2023年标准员之专业管理实务考前冲刺模拟考试试卷.docx
- 2023年主治医师之全科医学301通关模拟卷附答案详解.docx
文档评论(0)