当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题。
 

 

    摘要: 作者:老康  其实hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的hibernate入门介绍都加入了很多非hibernate的东西,比如: tomcat, eclipse, log4j,struts, xdoclet, 甚至jboss。这容易让人产生hibernate复杂难懂的误解,特别是打击了初......
 ·abstractclass&&interface比较    »显示摘要«
    摘要: zz from 城市webclubabstract class和interface是java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和int......


Java中文问题及最优解决方法
由于java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于java中文问题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题.于是我给出此篇文章,内容包括对控制台运行的class.servelets.jsp及ejb类中的中文问题我剖析与建议解决办法.希望大家指教.  

  1.中文问题的来源   【程序编程相关:运行时修改Web.config中的元素值

  abstract:本文深入分析了java程序设计中java编译器对java源文件与jvm对class类文件的编码/解码过程,通过此过程的解析透视出了java编程中中文问题产生的根本原因,最后给出了建议的最优化的解决java中文问题的方法.   【推荐阅读:优秀的Architect之路(入门)

由于java语言内部采用unicode编码,所以在java程序运行时,就存在着一个从unicode编码与对应的操作系统及浏览器支持的编码格式转换输入.输出的问题,这个转换过程有着一系列的步骤,如果其中任何一步出错,则显示出来的汉字就会出是乱码,这就是我们常见的java中文问题.  【扩展信息:C#和VB.NET的区别

计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理.随着计算机的发展,为了适应世界其它民族的语言(当然包括我们的汉字),人们提出了unicode编码,它采用双字节编码,兼容英文字符与其它民族的双字节字符编码,所以,目前,大多数国际性的软件内部均采用unicode编码,在软件运行时,它获得本地支持系统(多数时间是操作系统)默认支持的编码格式,然后再将软件内部的unicode转化为本地系统默认支持的格式显示出来.java的jdk与jvm即是如此,我这里说的jdk是指国际版的jdk,我们大多数程序员使用的是国际化的jdk版本,以下所有的jdk均指国际化的jdk版本.我们的汉字是双字节编码语言,为了能让计算机处理中文,我们自己制定的gb2312.gbk.gbk2k等标准以适应计算机处理的需求.所以,大部分的操作系统为了适应我们处理中文的需求,均定制有中文操作系统,它们采用的是gbk,gb2312编码格式以正确显示我们的汉字.如:中文win2k默认采用的是gbk编码显示,在中文win2k中保存文件时默认采用的保存文件的编码格式也是gbk的,即,所有在中文win2k中保存的文件它的内部编码默认均采用gbk编码,注意:gbk是在gb2312基础上扩充来的. 

同时,java是一个跨平台的编程语言,也即我们编写的程序不仅能在中文windows上运行,也能在中文linux等系统上运行,同时也要求能在英文等系统上运行(我们经常看到有人把在中文win2k上编写的java程序,移植到英文linux上运行).这种移植操作也会带来中文问题. 

还有,有人使用英文的操作系统与英文的ie等浏览器,来运行带中文字符的程序与浏览中文网页,它们本身就不支持中文,也会带来中文问题. 

几乎所有的浏览器默认在传递参数时都是以utf-8编码格式来传递,而不是按中文编码传递,所以,传递中文参数时也会有问题,从而带来乱码现象. 

总之,以上几个方面是java中的中文问题的主要来源,我们把以上原因造成的程序不能正确运行而产生的问题称作:java中文问题. 

  2.java编码转换的详细过程  

我们常见的java程序包括以下类别: 

*直接在console上运行的类(包括可视化界面的类) 

*jsp代码类(注:jsp是servlets类的变型) 

*servelets类 

*ejb类 

*其它不可以直接运行的支持类 

这些类文件中,都有可能含有中文字符串,并且我们常用前三类java程序与用户直接交互,用于输出与输入字符,如:我们在jsp与servlet中得到客户端送来的字符,这些字符也包括中文字符.
...   下一页
 ·jainapisq&a    »显示摘要«
    摘要: there are three categories of frequently asked questions as can be seen below. please select the appropriate link below: generalparticipation technical technical - i believe there are almo......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE