java编程中中文问题的产生及其解决方案

java编程中中文问题的产生及其解决方案

ID:34509544

大小:173.34 KB

页数:4页

时间:2019-03-07

java编程中中文问题的产生及其解决方案_第1页
java编程中中文问题的产生及其解决方案_第2页
java编程中中文问题的产生及其解决方案_第3页
java编程中中文问题的产生及其解决方案_第4页
资源描述:

《java编程中中文问题的产生及其解决方案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实践与经验Java编程中中文问题的产生及其解决方案刘冰(四川达州职业技术学院信息工程系,达州635001)摘要:在深入分析Java程序设计中Java编译器对Java源文件和JVM对class文件的编码/解码过程的基础上,分析Java编程中中文问题产生的根本原因,同时给出常见的Java程序在解决中文乱码方面的建议解决方案。关键词:编码;解码;乱码;Unicode;JVM;GBK0引言使得Java程序里出现的中文字符能够正确显示出来,就需要保证输入和输出的编码格式一致,即在在进行中文环境的Java应用的开发当中,由于“Java源代码

2、—Java字节码—虚拟机(JVM)—操作Java技术本身的缺陷,稍有不慎就会碰到在例如运系统—显示设备”中的每一步都必须正确地处理中行Java程序、程序移植或者Java程序与其他媒介进文的编码。行含有中文字符信息的交互等方面出现中文乱码的下面以在中文操作系统WindowsXP系统的背情况,其主要表现在中文字符串无法正确显示。由于境下直接在控制台上运行的Java程序为例来详细环境的不同,其表现情况也不尽相同,例如:Web应说明各步骤的转换控制情况:用中的JSP文件中的中文字符无法正确显示,出现首先用某种编辑软件(例如记事本)编写一

3、个类似于拉丁字母的乱码;在通过JSP文件传输的中Java源程序文件(在该文件中含有英文程序代码和可文参数无法正确显示,显示为“?”;在将中文数据存能的中文信息字符),并保存成.java的文件。在保存入数据库之后,再读出时显示为“?”,等等。这些情况时,Java源程序文件是采用了操作系统默认支持的随着环境的不同而变化,相同的程序在不同的环境GBK编码格式保存的。下有时也会出现这些问题。接下来,用JDK的Javac.exe来编译源代码,形1问题的产生成.class类。在编译的时候,如果没有用-encoding参数指定Java源程序的

4、编码格式,则Javac.exe首先会众所周知,现在市场上许多的软件内部均是采获得操作系统默认的编码格式(例如WindowsXP,file.用Unicode格式的编码,而本地系统默认支持的却可能是其他的编码格式(例如Windows中文系统是encoding参数的值为GBK),然后,JDK就把Java源程序从file.encoding编码格式转化为Java内部默认GBK,而Linux系统通常支持ISO8859-l),这就使得的Unicode格式并载入内存中,接着,Javac把转换它在运行时需要进行二者间的转换,或者以Unicode后

5、的Unicode格式的文件进行编译成.class的类文为中介实现两个不同本地字符集的转换工作。件,此时的.class文件是Unicode编码的,它暂时存Java语言内部使用的是Unicode编码格式,在放在内存中,最后,JDK将把以Unicode格式的文件中文操作系统(例如Windows系统)的背境下,要想收稿日期:2010-02-04修稿日期:2010-03-01作者简介:刘冰(1970-),男,四川达县人,讲师,本科,研究方向为计算机软件技术现代计算机2010.03貋貖貦实践与经验编译后的.class文件保存到操作系统中形成

6、所见到2.1直接在控制台上运行的类的.class文件。对于直接在控制台上运行的类,如果需要从用实际上,最终获得的.class文件是内容以Uni-户端接收用户的可能含有中文的输入或者是可能含code编码格式保存的类文件,它的内部包含了源程有中文的输出,建议在程序编写时,程序中应该采用序中的可能有的中文字符串,只不过此时这些中文字符流来处理输入和输出,具体来说,应该使用下表字符串己经由file.encoding格式转化为Unicode格中的面向字符型的相关流类型:式了。表1Java流的分类(按用途)最后在控制台上运行上述步骤中得到的

7、.class文件。当然,这需要有JVM的支持,即操作系统中必须安装有JRE。其运行过程是这样的:首先,JVM读出保存在操作系统中的.class文件并把内容载入内存中(此时内存中为Unicode格式的class类),然后JVM运行它,如果此时需要接收用户输入,则该类会默认用file.encoding编码格式对用户输入的串进行需要注意的是,在使用FileReader和FileWriter编码并转化为Unicode保存入内存(用户可以设置输进行读写字符文件时,虽然省去了字节与字符之间入流的编码格式)。程序运行后,产生的字符串(U-的转

8、换,但这两个类的构造方法默认使用系统的编nicode编码的)再传回给JVM,最后JRE把此字符串码方式,如果文件内容与系统编码方式不一致,同样再转化为file.encoding格式(用户可以设置输出流的可能会出现乱码。在这种情况下,建议使用Fil-编码格式)传递

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。