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

Java开发中中文乱码总结

阅读更多

1.     jsp页面内容显示乱码

这种乱码原因很简单,一般的工具或解码程序对中文字符解析时采用默认的解码方式:

<%@ page contentType="text/html; charset=ISO-8859-1"%>

我们只需修改其编码方式即可,如下:

<%@ page contentType="text/html; charset=UTF-8"%>

字符集:UTF-8 > GBK > GB2312

2.  jsp  Servlet 间跳转出现中文乱码

2.1 method="Post"

jsp form 表单的 ation="XxxServlet"method="Post"时,提交表单后往往发现中文的属性值在 Servlet 中获取后变乱码。

此时需要定位到 doPost() 方法,首先在方法内首行加上如下 code

      request.setCharacterEncoding("UTF-8");

意思是设置 request 的编码为 "UTF-8",一般与 jsp 页面一致

然后,再添加 code

      response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");

意思是设置 response 的编码为 "UTF-8",即 Servlet 回传 jsp 时的编码,上面两段用其一即可,保持一致是关键。

2.2 method="Get"

jsp form 表单的 ation="XxxServlet"method="Get"时,提交表单后往往发现中文的属性值在 Servlet 中获取后变乱码。

此时需定位的 tomcat 的安装目录 %TOMCAT%/conf/server.xml 文件 

寻找如下代码片段:

1.    <Connector port="8080" protocol="HTTP/1.1"    

2.      maxThreads="150"     

3.      connectionTimeout="20000"    

4.      redirectPort="8443"  

5.         URIEncoding="UTF-8"/>  

手动加上URIEncoding="UTF-8"

3.    javascript url 传递参数中文乱码问题

方案一

html页面:

function testOne() {
           var url = "testTwo.action?expr="+
你好;

     window.location.href = encodeURI(url);

}

后台java代码:

String expr = new String(

request.getParameter("expr").getBytes("ISO-8859-1"),"UTF-8");

 方案二

html页面:

function testTwo() {

var url = "testTwo.action?expr="+你好;

      window.location.href= encodeURI(encodeURI(url));

}

后台java代码:

String expr = java.net.URLDecoder.decode(lrequest.getParameter("expr") , "UTF-8");

如果用的是weblogic服务器的话,用方案二是可以解决的(我的weblogic的版本是weblogic 9.2的),方案一解决不了。

如果是tomcat服务器的话,这两个方案都可以;也可以在传递参数不处理,后台用

String expr = new String(request.getParameter("expr").getBytes("ISO-8859-1"),"UTF-8"); 

也是可以的。

4.     Java web下载文件文件名乱码

第一种: 设置  

response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));

这里将文件名编码成UTF-8的格式,就不会出现URL出错了。IE6下注意中文文字不能超过超过17个。

 第二种:设置

response.setHeader( "Content-Disposition", "attachment;filename="  + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) );

将中文名编码为ISO8859-1的方式。不过该编码只支持简体中文.

按照上诉方式,可以综合一下两种方式解决绝大部分中文问题。

 fileName = URLEncoder.encode(fileNameSrc,"UTF-8");

if(fileName.length()>150)//解决IE 6.0 bug {

      fileName=new String(fileNameSrc.getBytes("GBK"),"ISO-8859-1");

response.setHeader( "Content-Disposition", "attachment;filename="  + fileName);

}

 

分享到:
评论

相关推荐

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

    在Java开发过程中,有时我们需要查看或分析已编译的.class文件中的源代码,这就涉及到Java的反编译技术。反编译是将字节码还原为接近原生的源代码的过程,常用工具有JD-GUI,它是一款直观的Java反编译器。然而,当...

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

    本文将详细探讨如何使用Java开发这样的客户端,并解决在处理中文字符时可能出现的乱码问题。 首先,让我们了解Java中的Socket编程。在Java中,`java.net.Socket`类提供了TCP/IP套接字功能,可以用于建立客户端到...

    java 中文乱码 处理

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

    java中文乱码问题解决

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

    java处理中文乱码

    在Java开发中,处理中文乱码是一个常见的问题,尤其是在处理Web应用程序时。下面将详细介绍三种处理Java中中文乱码的方法。 方法一:类字符转换 这个方法涉及到将字符串从一种编码格式转换为另一种编码格式。在给...

    中文乱码问题整理总结

    通过日常的开发实践积累,本篇文章总结了一系列有关中文乱码问题的实例及解决方案,帮助开发者更好地理解和解决实际工作中遇到的相关问题。 #### 二、字符编码概述 在计算机系统中,所有的信息均以二进制形式存储...

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

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

    解决中文乱码问题-java

    在IT领域,尤其是在Java开发中,遇到中文乱码问题是相当常见的。这主要涉及到字符编码的处理,如果在数据传输、存储或显示过程中没有正确地指定或转换编码,就容易出现乱码现象。以下是对如何在Java中解决中文乱码...

    java web开发解决乱码问题

    ### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...

    java 解析csv文件例子,csv文件 中文乱码问题

    本篇文章将详细探讨如何在Java中解析CSV文件,并解决中文乱码的问题。 首先,我们需要了解如何使用Java的标准库`java.io`和`java.nio`来读取CSV文件。最常用的是使用`BufferedReader`配合`Scanner`或者`Files.lines...

    java传值中的乱码

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

    中文乱码问题分析 自己总结的

    中文乱码问题是 Java 和 JSP 开发中的一种常见问题,主要是由于 Java 和 JSP 源文件的保存方式是基于字节流的,而编译成 class 文件过程中,使用的编码方式与源文件的编码不一致所致。在 Java 文件中,尽量不要写...

    java解决解决get中文乱码问题

    在Java Web开发中,经常遇到的一个问题是处理GET请求中的中文参数时出现乱码。这个问题主要是因为浏览器发送GET请求时,参数默认使用ISO-8859-1编码格式,而服务器端通常采用的是其他编码(如GBK、UTF-8等)。当...

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

    在Linux操作系统中,Java应用程序处理中文字符时可能会遇到乱码问题。这主要涉及到编码格式的不匹配,因为Linux系统默认采用UTF-8编码,而某些Java应用或文件可能使用了GB2312、GBK或其他编码。本篇将详细介绍如何...

    jsp中文乱码总结包括 ajax中文乱码

    针对java web开发方面中文乱码情况的总结,基本各种情况都有了!

    中文乱码处理问题总结

    本文将重点讨论在Java环境下,特别是Web应用开发中遇到的中文乱码问题,并提出相应的解决方案。 #### 二、JSP页面中的乱码处理 1. **JSP页面本身的编码设置** - **问题描述**:JSP页面直接输出中文时可能出现...

    java里中文乱码的解决篇之过滤器

    总结一下,Java Web中的中文乱码问题主要通过设置正确的字符编码来解决,而过滤器是处理这个问题的一种有效手段。通过创建并配置过滤器,我们可以确保请求和响应的编码一致,从而避免中文乱码的出现。同时,注意整个...

    IDEA中文乱码的解决.pdf

    IDEA是一款功能强大的集成开发环境(IDE),但是在使用过程中,中文乱码的问题经常会出现,导致开发过程中的不便。因此,了解如何解决IDEA中文乱码问题变得非常重要。本文将详细介绍解决IDEA中文乱码的方法,包括...

    java中常见的中文乱码总结

    Java 中文乱码总结 Java 中文乱码是指在 Java 应用程序中出现的中文字符显示不正确的问题。这种问题的出现是由于编码方式的不同引起的。下面我们将详细介绍 Java 中文乱码的原因、解决方法和防止乱码的技巧。 一、...

Global site tag (gtag.js) - Google Analytics