`
dengzhangtao
  • 浏览: 676385 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于java中乱码的总结

阅读更多
java乱码是因为java和jsp文件的保持是基于字节流的,如果java和jsp在编译成class文件的过程中, 使用的编码方式和源文件不一致,就会出乱码,在这里总结一下java中常出现乱码的情况。

1.Javascript传参乱码:
在浏览器端对要传递的中文参数进行编码处理.代码如下:
xmlhttp.open("POST",url,true); //请求参数初始化
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.(如果请求方式为GET,此句代码可以省略)
xmlhttp.send("name="+encodeURI(encodeURI("星期日"))); //向服务器端发送参数
在服务器端代码:
页面jsp保证是utf-8编码
<%@ page contentType="text/html; charset=GBK"%>
接受中文参数
PrintWriter out = response.getWriter(); //得到response的输出流对象
String name1 = request.getParameter("name"); //得到KEY为"name"的请求参数
String name = URLDecoder.decode(name1,"utf-8"); //对得到的参数进行解码
out.print(name); //向浏览器端发送数据

2.JSP与页面参数之间的乱码
       JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。解决这类乱码问题的基本方法是在页面获取参数之前,强制指定request获取参数的编码方式:request.setCharacterEncoding("UTF-8") 。
    如果在JSP将变量输出到页面时出现了乱码,可以通过设置response.setContentType("text/html;charset=UTF-8")。
JSP页面乱码通常只要在页面开始地方用上面代码指定字符集编码即可。如果还不行,那么请用下面这句话来转换 str=new String(str.getBytes("ISO-8859-1"),"页面编码方式");

3.热链接传参乱码
在传参的jsp对中文进行编码:href="new.jsp?name=java.net.URLEncoder.encode("链接")";
在接受的jsp对中文进行转码:String str = URLDecoder.decode(request.getParameter("name "), "utf-8");

4.Java与数据库之间的乱码
  大部分数据库都支持以unicode编码方式,所以解决Java与数据库之间的乱码问题比较明智的方式是直接使用unicode编码与数据库交互。很多数据库驱动自动支持unicode,如Microsoft的SQLServer驱动。其他大部分数据库驱动,可以在驱动的url参数中指定,如mysql驱动:jdbc:mysql://localhost/MYAPPS?useUnicode=true&characterEncoding=GBK。

5.Java与文件/流之间的乱码
  Java读写文件最常用的类是FileInputStream/FileOutputStream和FileReader/FileWriter。其中FileInputStream和FileOutputStream是基于字节流的,常用于读写二进制文件。读写字符文件建议使用基于字符的FileReader和FileWriter,省去了字节与字符之间的转换。但这两个类的构造函数默认使用系统的编码方式,如果文件内容与系统编码方式不一致,可能会出现乱码。在这种情况下,建议使用FileReader和FileWriter的父类:InputStreamReader/OutputStreamWriter,它们也是基于字符的,但在构造函数中可以指定编码类型:InputStreamReader(InputStream in, Charset cs) 和OutputStreamWriter(OutputStream out, Charset cs)。
0
0
分享到:
评论

相关推荐

    Java中文乱码解决之道

    阅读许多关于中文乱码的解决办法的博文后,发现对于该问题我们都(更加包括我自己)没有一个清晰明了的认识,于是LZ想通过这系列博文(估计只有几篇)来彻底分析、解决java中文乱码问题,如有错误之处望各位同仁指出...

    java 中文乱码 处理

    在Java开发过程中,中文乱码问题常常令人头疼,尤其是在Web应用中,客户端提交的数据经常会出现编码不一致导致的乱码问题。本文将介绍几种解决Java中中文乱码的方法,希望能对您有所帮助。 #### 方法一:转换请求...

    Java 中文乱码问题

    总结一下,Java中文乱码问题的解决主要依赖于以下几个关键点:正确设置源代码的编码、指定JVM的字符编码、理解并正确处理文件和网络通信的字符编码。通过细心的检查和配置,大部分乱码问题都能得到解决。同时,了解...

    java中文乱码问题解决

    Java中文乱码问题是Java开发中常见的问题,尤其是在Web开发中,乱码问题会导致页面显示混乱,影响用户体验。解决乱码问题需要了解编码的基本原理和各种编码格式的区别。 编码的原因可以总结为两点:计算机中存储...

    Java生成pdf文件,解决中文乱码问题.pdf

    Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何使用 iText 库生成 PDF 文件,解决中文乱码...

    JAVA反编译文件解决中文乱码

    总结,解决JAVA反编译文件时的中文乱码问题,关键在于确定源代码的原始编码,并确保反编译工具支持该编码。同时,良好的编码规范和项目配置也是避免此类问题的重要措施。通过上述方法,开发者可以更顺利地进行Java反...

    java读写csv文件,中文乱码问题

    下面我们将深入探讨如何在Java中正确地读取和写入CSV文件,以及解决中文乱码的问题。 1. **字符编码的理解**: - 在处理中文字符时,必须确保使用正确的字符编码,例如UTF-8。UTF-8是一种广泛支持的编码格式,可以...

    java Socket与C#通信中中文乱码问题的解决方案

    总结起来,解决Java Socket与C#通信中中文乱码问题的关键在于: 1. **客户端**:确保使用`getBytes("UTF-8")`将字符串编码为UTF-8字节数组,然后通过Socket发送。 2. **服务器端**:在接收到数据后,使用`Encoding....

    java压缩zip文件解决中文乱码问题

    总结来说,处理Java中ZIP文件的中文乱码问题,关键在于明确指定字符集,通常是UTF-8,无论是使用Java内置的API还是第三方库。同时,理解文件系统的编码和压缩/解压过程中的字符编码转换也非常重要。通过这种方式,...

    JAVA 解决Properties文件保存中文乱码

    总结,解决Java中Properties文件中文乱码问题的关键在于正确指定文件的编码。无论是保存还是读取,都需要确保与文件实际的编码一致。在处理这类问题时,了解和掌握不同的API以及它们的用法是至关重要的,这样才能...

    java插入mysql中文乱码解决

    在使用Java应用程序与MySQL数据库交互的过程中,常常会遇到一个令人头疼的问题:中文字符在存储到数据库时出现乱码现象。这种现象通常发生在使用JDBC(Java Database Connectivity)连接数据库,并进行数据插入操作...

    java中文乱码字符集解决大全.pdf

    总结,Java中文乱码问题涉及多个层面,包括源文件编码、编译过程、执行环境以及跨平台和网络通信。解决这类问题的关键在于理解编码转换过程,合理设置编码参数,并确保在各个层次保持一致。通过上述方法,可以有效地...

    java处理中文乱码

    总结来说,处理Java中的中文乱码主要涉及字符编码的转换、请求处理器的定制以及过滤器的使用。在实际开发中,根据项目需求和所使用的框架,可以选择合适的方式来确保中文数据的正确显示和处理。同时,为了减少乱码...

    java传值中的乱码

    ### Java传值中的乱码问题及最简易的解决方法 在Java Web开发中,经常会遇到一个令人头疼的问题:客户端向服务器传递数据时出现乱码。这种情况不仅会影响用户体验,还可能导致程序逻辑错误。本文将深入探讨Java传值...

    java编程中乱码问题解决

    ### Java编程中乱码问题解决 在Java编程中,乱码问题是开发者经常遇到的一个难题,尤其是在处理中文或者其他非英文字符时。本文将详细介绍如何解决Java编程中常见的乱码问题,并提供具体的实例帮助读者理解。 ####...

    解决Linux操作系统下Java的中文乱码问题

    总结来说,解决Linux下Java中文乱码问题,关键在于确保编码一致性,包括JVM、源代码、文件读写、网络数据以及图形界面的字体设置。同时,使用统一且支持中文的编码,如UTF-8,可以有效避免乱码现象。

    Java开发乱码问题解决方法汇总

    在本文中,我们将总结一些常见的Java开发乱码问题解决方法,希望能够为读者提供帮助。 1. 统一项目编码方式 乱码问题的根源之一是项目中的编码方式不统一。因此,在项目中统一使用一种编码方式是非常重要的。例如...

    中文乱码总结出现的原因,及解决方法,包括数据库乱码

    中文乱码总结出现的原因及解决方法,包括数据库乱码 中文乱码是一个常见的问题,它可能出现在 Java 和 JSP 文件中,也可能出现在 Java 程序与其他媒介交互时。以下是中文乱码的原因和解决方法: Java 和 JSP 文件...

    java中文乱码

    本文将总结 Java 中文乱码的常见情况和解决方法。 一、Javascript 传参乱码 在浏览器端对要传递的中文参数进行编码处理可以使用 encodeURI 函数,对服务器端传递的中文参数进行解码可以使用 URLDecoder.decode ...

    Java开发Client客户端,连接Windows的Telnet服务器,解决了中文乱码问题

    总结一下,解决Java Telnet客户端中文乱码问题的关键在于: 1. 使用`Charset`类进行编码转换,确保与服务器的编码保持一致。 2. 在发送和接收数据时,正确地设置输入流和输出流的字符编码。 通过以上步骤,我们...

Global site tag (gtag.js) - Google Analytics