java 认识字符集.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java 认识字符集.pdf

j ava 认识字符集 认识字符集 j ava编码中的中⽂问题是⼀个⽼⽣常谈的问题了,每次遇到中⽂乱码LZ要么是按照以 前的经验修改,要么 是baidu .com来解决问题。阅读许多关于中⽂乱码的解决办法的 博⽂后,发现对于该问题我们都 (更加包括我⾃⼰)没有⼀个清晰明了的认识,于是 LZ想通过这系列博⽂ (估计只有⼏篇)来彻底分析、解决j ava 中⽂乱码问题,如有错 误之处望各位同仁指出 !当然,此系列博⽂并⾮LZ完全原创,都是在前辈基础上总 结,归纳,如果雷同纯属借鉴…… 问题起源 对于计算机⽽⾔,它仅认识两个0和1,不管是在内存中还是外部存储设备上,我们所 看到的⽂字、图⽚、视频等等“数据”在计算机中都是已⼆进制形式存在的。不同字符 对应⼆进制数的规 ,就是字符的编码。字符编码的集合称为字符集。 在早期的计算机系统中,使⽤的字符是⾮常少的,他们只包括26个英⽂字母、数字符 号和⼀些常⽤符号,对于这些字符进⾏编码,⽤1个字节就⾜够了,但是随着计算机 的不断发展,为了适应全世界其他各国民族的语⾔,这些少得可怜的字符编码肯定是 不够的。于是⼈们提出了UNICODE编码,它采⽤双字节编码,兼容英⽂字符和其他 国家民族的双字节字符编码。 每个国家为了统⼀编码都会规定该国家/地区计算机信息交换⽤的字符集编码,为了解 决本地字符信息的计算机处理,于是出现了各种本地化版本,引进LANG , Codepage 等概念。现在⼤部分具有国际化特征的软件核⼼字符处理都是以Unicode 为基础的, 在软件运⾏时根据当时的Locale/Lang/Codepage 设置确定相应的本地字符编码设置, 并依此处理本地字符。在处理过程中需要实现Unicode 和本地字符集的相互转换。 同然,j ava 内部采⽤的就是Unicode编码,所以在j ava运⾏的过程中就必然存在从 Unicode编码与相应的计算机操作系统或者浏览器⽀持的编码格式相互转化的过程, 这个转换的过程有⼀系列的步骤,如果某个步骤出现错误, 输出的⽂字就会是乱 码。 所以产⽣j ava乱码的问题就在于JVM与对应的操作系统/浏览器进⾏编码格式转换时出 现了错误。 其实要解决j ava乱码问题的⽅法还是⽐较简单的,但是要究其原因,理解背后的原理 还是需要了解 其实解决JAVA 程序中的汉字编码问题的⽅法往往很简单,但理解其背后的原因,定 位问题,还需要了解现有的汉字编码和编码转换。 常见字符编码 计算机要准确的处理各种字符集⽂字,需要进⾏字符编码,以便计算机能够识别和存 储各种⽂字。常见的字符编码主要包括:ASCII编码、GB**编码、Unicode 。下⾯LZ 就简单地介绍下 !(为什么是简单介绍?因为LZ在⽹上查找资料想去了解字符编码 时,发现这个问题⽐我想象的复杂太多了,所以LZ需要另起⼀篇详细介绍,所以各位 看客就简单看看吧 !!) 1.ASCII编码 ASCII ,American Standard Code for Information Interchange ,是基于拉丁字母的⼀套电 脑编码系统,主要⽤于显⽰现代英语和其他西欧语⾔。它是现今最通⽤的单字节编码 系统。 ASCII码使⽤指定的7位或者8为⼆进制数字组合表⽰128或者256种可能的字符。标准 的ASCII编码使⽤的是7 (2^7 = 128 )位⼆进制数来表⽰所有的⼤⼩写字母、数字和标 点符号已经⼀些特殊的控制字符,最前⾯的⼀位统⼀规定为0 。其中0 ~31及127(共33 个)是控制字符或通信专⽤字符,32 ~126(共95个)是字符(32是空格),其中48 ~57为0 到9⼗个阿拉伯数字,65 ~90为26个⼤写英⽂字母,97 ~122号为26个⼩写英⽂字母, 其余为⼀些标点符号、运算符号等。 2.GBK***编码 ASCII最⼤的缺点就是显⽰字符有限,他虽然解决了部分西欧语⾔的显⽰问题,但是 对更多的其他语⾔他实在是⽆能为了。随着计算机技术的发展,使⽤范围越来越⼴泛 了,ASCII的缺陷越来越明显了,其他国家和地区需要使⽤计算机,必须要设计⼀套 符合本国/本地区的编码规 。例如为了显⽰中⽂,我们就必须要设计⼀套编码规 ⽤ 于将汉字转换为计算机可以接受的数字系统的数。 GB2312 ,⽤于汉字处理、汉字通信等系统之间的信息交换,通⾏于中国⼤陆。它的 编码规 是:⼩于127的字符的意义与原来相同,但两个⼤于127的字符连在⼀起时, 就表⽰⼀个汉字,前⾯的⼀个字节 (他称之为⾼字节)从0xA 1⽤到0xF7 ,后⾯⼀个 字

文档评论(0)

tangtianbao1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档