选择显示字体大小

深入剖析jsp和servlet对中文的处理

  世界上的各地区都有本地的语言。地区差异直接导致了语言环境的差异。在开发一个国际化程序的过程中,处理语言问题就显得很重要了。

  这是一个世界范围内都存在的问题,所以,java提供了世界性的解决方法。本文描述的方法是用于处理中文的,但是,推而广之,对于处理世界上其它国家和地区的语言同样适用。

  汉字是双字节的。所谓双字节是指一个双字要占用两个byte的位置(即16位),分别称为高位和低位。中国规定的汉字编码为gb2312,这是强制性的,目前几乎所有的能处理中文的应用程序都支持gb2312。gb2312包括了一二级汉字和9区符号,高位从0xa1到0xfe,低位也是从0xa1到0xfe,其中,汉字的编码范围为0xb0a1到0xf7fe。

  另外有一种编码,叫做gbk,但这是一份规范,不是强制的。gbk提供了20902个汉字,它兼容gb2312,编码范围为0x8140到0xfefe。gbk中的所有字符都可以一一映射到unicode 2.0。

  在不久的将来,中国会颁布另一种标准:gb18030-2000(gbk2k)。它收录了藏、蒙等少数民族的字型,从根本上解决了字位不足的问题。注意:它不再是定长的。其二字节部份与gbk兼容,四字节部分是扩充的字符、字形。它的首字节和第三字节从0x81到0xfe,二字节和第四字节从0x30到0x39。

  本文不打算介绍unicode,有兴趣的可以浏览“http://www.unicode.org/”查看更多的信息。unicode有一个特性:它包括了世界上所有的字符字形。所以,各个地区的语言都可以建立与unicode的映射关系,而java正是利用了这一点以达到异种语言之间的转换。

  在jdk中,与中文相关的编码有:

  表1 jdk中与中文相关的编码列表

编码名称说明
ascii7位,与ascii7相同
iso8859-18-位,与 8859_1,iso-8859-1,iso_8859-1,latin1...等相同
gb2312-8016位,与gb2312,gb2312-1980,euc_cn,euccn,1381,cp1381, 1383, cp1383, iso2022cn,iso2022cn_gb...等相同
gbk与ms936相同,注意:区分大小写
utf8与utf-8相同
gb18030与cp1392、1392相同,目前支持的jdk很少

  在实际编程时,接触得比较多的是gb2312(gbk)和iso8859-1。

  为什么会有“?”号

  上文说过,异种语言之间的转换是通过unicode来完成的。假设有两种不同的语言a和b,转换的步骤为:先把a转化为unicode,再把unicode转化为b。

  举例说明。有gb2312中有一个汉字“李”,其编码为“c0ee”,欲转化为iso8859-1编码。步骤为:先把“李”字转化为unicode,得到“674e”,再把“674e”转化为iso8859-1字符。当然,这个映射不会成功,因为iso8859-1中根本就没有与“674e”对应的字符。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons