Java中的中文乱码解决方法

文档序号:8257982阅读:1232来源:国知局
Java中的中文乱码解决方法
【技术领域】
[0001]本发明涉及软件开发技术领域,具体地说是一种JAVA中的中文乱码解决方法。
【背景技术】
[0002]互联网的迅速发展对人类生活产生了巨大的影响,给社会带来了翻天覆地的变化,无论是国家、政府、企业或是个人,皆是如此。人们对信息技术的青睐,促进了信息技术、计算机技术和网络技术的飞速发展,新理论、新技术、新概念、新想法层出不穷,但是随着人们需求的不断增长,软件产品的开发过程的复杂程度也是越来越高。
[0003]对于软件开发人员来说,能够选择一种合适的语言至关重要,尤其是项目的开发周期、开发成本、程序运行效率以及程序的可维护性等指标更是与编程语言的选择密切相关。面向对象的编程语言Java的出现,以其强制面向对象、跨平台、易移植性、健壮性等特点受到广大软件开发人员的青睐。
[0004]Java:是一种可以编写跨平台应用软件的强制面向对象的编程语言,由Sun公司在1995年推出的。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动通信和互联网等领域。
[0005]Servletiservlet是在服务器上运行的小程序,根据用户输入访问数据库,它们的执行速度更快于CGI程序。每个用户请求被激活成单个程序中的一个线程,无需创建单独的进程,大大降低了系统开销。
[0006]JSP:全名叫做Java Server Pages,本质是一个简化的Servlet设计,在普通的Html文件中嵌入Java代码和标记,就形成了 JSP文件。JSP通常在服务器端执行,返回给客户端一个Html文件。
[0007]Console类:ConsoIe类是在JDK6中新增的类,专门用于访问基于字符的操作台设备,如果Java程序需要与Windows下的cm或者Linux中的Terminal交互,可以使用这个Java Console 类。
[0008]JDBC:全称Java Database Connectivity,即Java数据库连接。它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供同意访问途径。它提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
[0009]EJB技术:该技术产生于1998年3月,而后一直作为J2EE的核心,主要的目的在于简化企业级应用开发,使得开发人员能将更多的精力投入于业务逻辑而不是系统级问题上。
[0010]Java的JDK和JVM采用UNICODE编码格式,在软件运行的时候,必须经过UNICODE编码向操作系统默认的编码格式转换的一个过程,这个过程中有多个复杂的步骤,每个步骤出现问题,都会导致出现我们意料之外的结果,这就是Java编程人员在软件开发过程中最常见的中文乱码问题。另外,Java是一个支持跨平台的编程语言,我们的代码不仅在Windows操作系统上运行,也能在Linux或者Unix系统上运行,从不同操作系统上移植代码时,这种操作也会带来中文乱码问题。以上几种技术,Java程序在不同的环境下都会产生中文乱码问题。

【发明内容】

[0011]本发明的技术任务是提供一种JAVA中的中文乱码解决方法。
[0012]本发明的技术任务是按以下方式实现的,该中文乱码解决方法包括Java程序在Console、EJB、Servlet、JSP, JDBC环境下运行过程中遇到编码错误导致中文乱码问题的解决方法,具体操作方法如下:
1)Java程序在Console上运行的类:
在该程序代码中,程序需要用户输入包含中文内容或者输出中文内容时,使用字符流来控制字符的编码问题;
2)Java程序在EJB上运行的类:
在该程序代码中,使用字符流来解决中文字符,在编译时将编码信息作为参数传进去;
3)Java程序在JSP代码或Servlet上运行的类:
JSP文件转化成Servlet类文件,对程序进行编译的时候,采用制定编码GBK或者国标编码格式GB2312,在内置对象向用户返回信息的时候采用对象设定的编码格式,在接收用户输入时,使用请求对象设定的编码格式;
4)Java程序在JDBC上运行的类:
在Java代码和JDBC之间进行通信的时,指定Java程序的编码格式,使其与设定JDBC的默认编码格式一致,将默认语言设置为简体中文即可。
[0013]所述的Java程序在Console上运行的类,使用字符流来控制字符的编码,具体情况如下:
从文件中读取或者向文件中写入含有中文的信息,需要使用到的数据流管道为FileInputStream和FileOutputStream ;从内存中读取或者向内存中写入含有中文信息的数组,使用ByteArrayInputStream和ByteArrayOutputStream数组型节点流;从内存中读取或者向内存中写入含有中文信息的字符串,使用PipedInputStream和PipedOutputStream字节流;使用缓存的写入和读出工具BufferedWriter、BufferedReader,其分别对应的中文字符处理流是BufferedinputStreamReader和BufferedoutputStreamWo
[0014]所述的Java程序在Servlet上运行的类,在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType或gb2312来设置输出编码格式,在接收用户输入时,用request.SetCharacterEncoding0
[0015]本发明的JAVA中的中文乱码解决方法和现有技术相比,在不同的环境下,采用不同的编码格式和字符处理方式,可以有效地避免或者控制中文乱码问题,大大提高了软件开发人员的工作效率。
【具体实施方式】
[0016]实施例1: 该中文乱码解决方法包括Java程序在Console、EJB、Servlet、JSP, JDBC环境下运行过程中遇到编码错误导致中文乱码问题的解决方法,具体操作方法如下:
I) Java程序在Console上运行的类:
在该程序代码中,程序需要用户输入包含中文内容或者输出中文内容时,使用字符流来控制字符的编码问题;具体情况如下:
从文件中读取或者向文件中写入含有中文的信息,需要使用到的数据流管道为FileInputStream和FileOutputStream ;从内存中读取或者向内存中写入含有中文信息的数组,使用ByteArrayInputStream和ByteArrayOutputStream数组型节点流;从内存中读取或者向内存中写入含有中文信息的字符串,使用PipedInputStream和PipedOutputStream字节流;使用缓存的写入和读出工具BufferedWriter、BufferedReader,其分别对应的中文字符处理流是BufferedinputStreamReader和BufferedoutputStreamWo
[0017]2) Java程序在EJB上运行的类:
在该程序代码中,使用字符流来解决中文字符,在编译时将编码信息作为参数传进去;
3)Java程序在JSP代码或Servlet上运行的类:
JSP文件转化成Servlet类文件,对程序进行编译的时候,采用制定编码GBK或者国标编码格式GB2312,在内置对象向用户返回信息的时候采用对象设定的编码格式,在接收用户输入时,使用请求对象设定的编码格式;
在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType或gb2312来设置输出编码格式,在接收用户输入时,用 request.setCharacterEncoding。
[0018]4) Java程序在JDBC上运行的类:
在Java代码和JDBC之间进行通信的时,指定Java程序的编码格式,使其与设定JDBC的默认编码格式一致,将默认语言设置为简体中文即可。
[0019]通过上面【具体实施方式】,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种【具体实施方式】。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
【主权项】
1.JAVA中的中文乱码解决方法,其特征在于,该中文乱码解决方法包括Java程序在Console、EJB、Servlet、JSP, JDBC环境下运行过程中遇到编码错误导致中文乱码问题的解决方法,具体操作方法如下: 1)Java程序在Console上运行的类: 在该程序代码中,程序需要用户输入包含中文内容或者输出中文内容时,使用字符流来控制字符的编码问题; 2)Java程序在EJB上运行的类: 在该程序代码中,使用字符流来解决中文字符,在编译时将编码信息作为参数传进去; 3)Java程序在JSP代码或Servlet上运行的类: JSP文件转化成Servlet类文件,对程序进行编译的时候,采用制定编码GBK或者国标编码格式GB2312,在内置对象向用户返回信息的时候采用对象设定的编码格式,在接收用户输入时,使用请求对象设定的编码格式; 4)Java程序在JDBC上运行的类: 在Java代码和JDBC之间进行通信的时,指定Java程序的编码格式,使其与设定JDBC的默认编码格式一致,将默认语言设置为简体中文即可。
2.根据权利要求1所述的JAVA中的中文乱码解决方法,其特征在于,所述的Java程序在Console上运行的类,使用字符流来控制字符的编码,具体情况如下: 从文件中读取或者向文件中写入含有中文的信息,需要使用到的数据流管道为FileInputStream和FileOutputStream ;从内存中读取或者向内存中写入含有中文信息的数组,使用ByteArrayInputStream和ByteArrayOutputStream数组型节点流;从内存中读取或者向内存中写入含有中文信息的字符串,使用PipedInputStream和PipedOutputStream字节流;使用缓存的写入和读出工具BufferedWriter、BufferedReader,其分别对应的中文字符处理流是BufferedinputStreamReader和BufferedoutputStreamWo
3.根据权利要求1所述的JAVA中的中文乱码解决方法,其特征在于,所述的Java程序在Servlet上运行的类,在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType或gb2312来设置输出编码格式,在接收用户输入时,用request.setCharacterEncoding。
【专利摘要】本发明公开了一种JAVA中的中文乱码解决方法,该中文乱码解决方法包括Java程序在Console、EJB、Servlet、JSP、JDBC环境下运行过程中遇到编码错误导致中文乱码问题的解决方法。本发明的JAVA中的中文乱码解决方法和现有技术相比,在不同的环境下,采用不同的编码格式和字符处理方式,可以有效地避免或者控制中文乱码问题,大大提高了软件开发人员的工作效率。
【IPC分类】G06F9-44, G06F9-45
【公开号】CN104572102
【申请号】CN201510008401
【发明人】王贵友, 崔乐乐, 徐宏伟
【申请人】浪潮软件集团有限公司
【公开日】2015年4月29日
【申请日】2015年1月8日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1