深入剖析Java编程中的中文问题及建议最优解决方法--下篇

深入剖析Java编程中的中文问题及建议最优解决方法--下篇

ID:43786535

大小:100.41 KB

页数:5页

时间:2019-10-14

深入剖析Java编程中的中文问题及建议最优解决方法--下篇_第1页
深入剖析Java编程中的中文问题及建议最优解决方法--下篇_第2页
深入剖析Java编程中的中文问题及建议最优解决方法--下篇_第3页
深入剖析Java编程中的中文问题及建议最优解决方法--下篇_第4页
深入剖析Java编程中的中文问题及建议最优解决方法--下篇_第5页
资源描述:

《深入剖析Java编程中的中文问题及建议最优解决方法--下篇》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、4、中文问题的分类及其建议最优解决办法了解以上JAVA处理文件的原理Z后,我们就可以提出了一套建议最优的解决汉字问题的办法。我们的H标是:我们在中文系统中编辑的含有中文字符串或进行中文处理的JAVA源程序经编译后可以移值到任何其它的操作系统中止确运行,或拿到其它操作系统中编译后能止确运行,能止确地传递中文和英文参数,能正确地和数据库交流中英文字符串。我们的具体思路是:在JAVA程序转码的入口和出口及JAVA程序同用户有输入输出转换的地方限制编码方法使之正确即可。具体解决办法如下:1、针对直接在console上运行的

2、类对于这种悄况,我们建议在程序编写时,如果需耍从用户端接收用户的可能含有屮文的输入或含有中文的输出,程序中应该采用字符流來处理输入和输出,具体来说,应用以下ihi向字符型节点流类型:对文件:FileReader,FileWrieter其字节型节点流类型为:FilelnputStream,FileOutputStream对内存(数组):CharArrayReader,CharArrayWriter其字节型节点流类型为:ByteArrayInputstream,ByteArrayOutputStream对内存(字符串)

3、:StringReader,StringWriter对管道:PipedReader,PipedWriter其字节型节点流类型为:PipedlnputStream,PipedOutputStream同时,应该用以下面向字符型处理流來处理输入和输出:BufferedWriter,BufferedReader其字节型的处理流为:BufferedlnputeStream,BufferedOutputStreamInputstreamReader,OutputStreamWriter其字节型的处理流为:DatalnputSt

4、ream,DataOutputStream其屮InputstreamReader和InputstreamWriter用于将字节流按照指定的字符编码集转换到字符流,如:InputstreamReaderin=newInputStreamReader(System.in,"GB2312"):OutputstreamWriterout=newOutputstreamWriter(System.out,nGB2312n);例如:采用如下的示例JAVA编码就达到了要求://Read.javaimportjava.io.*;p

5、ublicclassRead{publicstaticvoidmain(String]]args)throwslOException{Stringstr=”屮文测试,这是内部硬编码的串"+"testenglishcharacter";Stringstrin="BufferedReaderstdin=newBufferedReader(newInputstreamReader(System.in,"gb2312n));//设置输入接口按中文编码BufferedWriterstdout=newBufferedW

6、riter(newOutputStreamWriter(System・out,”gb2312”));〃设置输出接口按中文编码stdout.write("请输入:”);stdout.flush();strin=stdin.readLine();stdout.write(”赵是从用尸输入的串:”+strin);stdout.write(str);stdout.flush();}}同时,在编译程序时,我们用以下方式來进行:javac・encodinggb2312Read.java其运行结果如图5所示:S

7、

8、另则试,这是内

9、部硬编码的串stenglisbcbaract"J2sdkl.4.1_01>j2sdkl.4.1_01>jauaRead:测试中文english用户输入的串:狈english:j2sdkl.4.1_01>jauac-encodinggb2312Read.jaua区C:WINNTsystem32cmd.exe图5文2、针对EJB类和不可以直接运行的支持类(如JavaBean类)由于这种类它们木身被其它的类调用,不直接与用户交互,故对这种类來说,我们的建议的处理方式是内部程序中应该采用字符流来处理程序内部的中

10、文字符串(具体如上面一节中一样),同时,在编译类时ffl-encodinggb2312参数指示源文件是中文格式编码的即可。3、针对Servlet类针对Servlet,我们建议用以下方法:在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType(,,te

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

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

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