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开发中中文乱码总结的更多相关文章

  1. Java编程中中文乱码问题的研究及解决方案

    0 引言 Java最大的特性是与平台的无关性及开发环境的多样性.字符串被Java应用程序转化之前,是根据操作系统默认的编码方式编码.Java语言内部采用Unicode编码,它是定长双字节编码,即任何符 ...

  2. 201671010127 2016—2017—2 Java怎样解决Java程序中中文乱码的问题。

    这是本次第二次分享新手在编程中遇到的问题,相信很多Java新手和我一样,在Java编程中会遇到中文乱码的情况,下面我就给大家分享我遇到问题和解决问题的具体过程. 我先用Notepad++写了一个如下的 ...

  3. Java开发中常见的危险信号(中)

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...

  4. Java开发中常见的危险信号(上)

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...

  5. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  6. Java开发中代码规范有哪些?

    Java开发中所要遵守的编码规范大体上有如下7点.命名规范.注释规范.缩进排版规范.文件名规范.声明规范.语句规范以及编程规范. 1.命名规范 (1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z) ...

  7. java: jsp:param中文乱码

    java: jsp:param中文乱码 假如a.jsp/b.jsp文件中 a.jsp代码: 需要加入:request.setCharacterEncoding("UTF-8")  ...

  8. 轻松理解 Java开发中的依赖注入(DI)和控制反转(IOC)

    前言 关于这个话题, 网上有很多文章,这里, 我希望通过最简单的话语与大家分享. 依赖注入和控制反转两个概念让很多初学这迷惑, 觉得玄之又玄,高深莫测. 这里想先说明两点: 依赖注入和控制反转不是高级 ...

  9. mysql中中文乱码问题

    作用:约束用来保证数据有效性和完整性 . 定义主键约束 主键约束 primary key : 信息记录某个字段可以唯一区分其他信息记录,这个字段就可以是主键 (唯一 非空)   primary key ...

随机推荐

  1. linux 路由

  2. 记录一次Tomcat内存泄露原因的追溯

    现象:WEB无法访问.SSH无法登陆.桌面登陆验证失败. 重启服务器后登陆正常. cat /var/log/message显示root用户创建了2000多个sessions后显示内存不足. 进入tom ...

  3. VS中使用svn注意事项

    1.程序需定期编译通过后上传SVN,每天可上传多次,根据个人程序开发进度决定,但每天晚下班前必须将当天的程序编译调试通过并上传SVN.每天早上上班首先需要更新SVN最新版本. 上传的工作流程应该是,更 ...

  4. placeholder文字颜色与是否显示兼容性

    1.ie显示问题 <script type="text/javascript"> $(document).ready(function(){ var doc=docum ...

  5. freemarker页面如何获取绝对路径basePath

    1. freemarker获取系统相对路径方式 spring-mvc.xml 中配置 <!-- FreeMarker视图解析 如返回userinfo..在这里配置后缀名ftl和视图解析器.. - ...

  6. Java不同编码方式,中英文字符所占字节数

    测试代码 public class Test { public static void main(String[] args){ String[] charsetNames={ "UTF-8 ...

  7. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 错误解决

    今天在做LNMP的时候,启动nginx服务,无法开启,导致网页打不开.把服务从起一下发现提示错误如下: Starting nginx: nginx: [emerg] bind() to 0.0.0.0 ...

  8. IIS发布网站

    IIS发布网站几个问题 1.部署步骤:http://jingyan.baidu.com/article/3065b3b6e5becdbecff8a4d5.html Win7下IIS报503Servic ...

  9. J2EE环境配置与工具使用

    一.Java SDK安装 J2SE最新版安装地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,包括JDK和JR ...

  10. PRML读书笔记——3 Linear Models for Regression

    Linear Basis Function Models 线性模型的一个关键属性是它是参数的一个线性函数,形式如下: w是参数,x可以是原始的数据,也可以是关于原始数据的一个函数值,这个函数就叫bas ...