读书频道 > 网站 > 网页设计 > Java 7程序设计
2.1 ASCII和Unicode
12-08-13    叶孤城
收藏    我要投稿   

本文所属图书 > Java 7程序设计

本书由全球资深Java技术专家、高级Java企业级应用架构师、《How Tomcat Works》作者亲自执笔,权威性毋庸置疑。它以最新的Java 7为基础,全面讲解了Java编程语言、Java面向对象技术和Java核心类库三大主题,包...立即去当当网订购
Java是一种面向对象的编程(OOP)语言,因此重中之重是理解OOP。第4章是本书中关于OOP的第一节课。但是,在你深入学习OOP的许多特性和技术之前,要确保具备了一定的前提条件:本章中讨论的基本编程概念。本章的主题如下:
编码集。Java支持Unicode字符编码集,并且程序元素命名不需要严格遵守ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)字符。实际上,文本可以利用当今人类所使用的任何字符来写。
基本类型。Java是一种OOP语言,Java程序大部分时间都在处理对象,但是也有非对象的元素,用来表示数字和简单的值,如true和false。这些简单的非对象编程元素就称做基本类型。
变量,是指其内容可以改变的量。变量的类型有许多种。
常量,是指其值不能发生改变的量。
字面量,表示Java编译器能够理解的数据值。
基本类型转换,是指将基本类型的类型转换成另一种类型。
操作符,是指表示要执行某些操作的符号。
提示 如果你用C或C++(Java面世之前最流行的两种编程语言)编过程序,那么学习Java时应该会十分得心应手,因为Java的语法与C和C++的非常类似。但是Java的创建者还增加了C和C++中所没有的许多特性,并且去掉了它们的某些特性。
2.1 ASCII和Unicode
在以英语为母语的国家,他们的计算机一般只用ASCII字符集来表示字母以及数字。ASCII中的每个字符都是用7位表示。因此这个字符集中有128个字符。这里面包括大小写拉丁字母、数字以及标点符号。
后来,ASCII字符集又扩展了另外128个字符,包括德文字符、、ü,以及英国货币符号£。这个字符集称做扩展ASCII,每个字符都用8位表示。
ASCII和扩展ASCII只是众多可选字符集当中的两种。另一种十分盛行的是以ISO(国际标准组织)为标准的字符集,称做ISO-8859-1,即众所周知的Latin-1。ISO-8859-1中的每个字符也用8位表示。这个字符集包含用西欧各种语言编写文本所需的所有字符,如德文、丹麦文、荷兰文、法文、意大利文、西班牙文、葡萄牙文,当然,还有英文。每个字符为8位的字符集使用起来很方便,因为每一个字节也是8位长。因此,保存和传输用8位字符集编写的文本是最高效的。
但是,并非每一种语言都采用拉丁字母。中文、韩文和泰文就是使用其他字符集的例子。例如,中文中的每个字符都表示一个字,而不是一个字母。它有成千上万个字符,8位远远不足以表示字符集中的所有字符。日文也给它们的语言使用一种不同的字符集。总之,全世界的语言一共使用几百种不同的字符集,这样很容易造成困扰,因为在一个字符集中表示一个特殊字符的编码,在另一个字符集中却表示另一个不同的字符。
Unicode是由一个名为Unicode Consortium的非盈利组织(www.unicode.org)开发的字符集。它试图将全世界所有语言中的所有字符都囊括在一个字符集中。Unicode中的每一个数字都只表示一个字符。Unicode目前的版本为6,用在Java、XML、ECMAScript、LDAP等语言中。它还被一些行业巨头公司所采纳,如IBM、Microsoft、Oracle、Google、HP、Apple等。
最初,Unicode字符是用16位表示的,足以表示超过65 000个不同的字符。65 000个字符已经足以编写世界上主流语言中的大多数字符。但是,Unicode Consortium计划再多编写一百万个字符。如果是这个数量级的字符个数,表示每个字符就另外还需要16位。事实上,业界一致认为32位系统是保存Unicode字符的一种便捷方式。
现在,你就可以知道问题的根本所在了。当Unicode为所有语言中所用的所有字符提供了足够的空间时,保存和传输Unicode文本就没有保存和传输ASCII或Latin-1字符那么高效了。在互联网世界里,这可是一个大问题。想象一下,同样的数据量,它的传输时间可是ASCII文本的4倍!
值得庆幸的是,字符编码可以提高保存和传输Unicode字面量的效率。你可以把字符编码想象成数据压缩。目前有许多种字符编码类型可供选择。Unicode Consortium支持以下三种:
UTF-8。这是HTML和协议常用的,这里的Unicode字符要转换成一种长度可变的字节编码。它的优势在于,与常用的ASCII集对应的Unicode字符,带有与ASCII相同的字节值,并且转变成UTF-8的Unicode字符可以在许多现有的软件中使用。大多数浏览器都支持UTF-8字符编码。
UTF-16。在这种字符编码中,所有较为常用的字符都被划入一个16位的代码单元(code unit),其他较不常用的字符则通过一对16位代码单元进行访问。
UTF-32。这种字符编码使用32位来表示每一个字符。这对于互联网应用程序来说显然不是很好的选择。至少目前还不行。
ASCII字符在软件编程中仍然扮演着举足轻重的角色。Java中几乎所有输入元素也都是采用ASCII,除注解、标识符、字符及字符串的内容之外。对于后者,Java支持Unicode字符。这意味着你可以用英语以外的语言来编写注解、标识符以及字符串。例如,假设你是一位住在北京的中国人,就可以用汉字来给变量命名。作为对比,下面这段Java代码是在声明名为password的标识符,它就是由ASCII字符组成的:
String password = "secret";
相反,下面的标识符则是用简体汉字写的:
String 密码= "secret";
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站