`
dengzhangtao
  • 浏览: 677238 次
  • 性别: 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 编译过程中的乱码问题主要体现在两个方面:一是源代码文件(.java)的乱码,这通常是由于源文件本身的编码格式与编辑器或者编译器识别的编码不一致导致的。确保 .java 文件无乱码并且使用正确的编码打开和保存...

    java中文乱码

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

Global site tag (gtag.js) - Google Analytics