java开发乱码解决
来源:互联网 发布:淘宝买东西往哪里存钱 编辑:程序博客网 时间:2024/05/22 08:03
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开发乱码解决
- java开发乱码解决
- Java开发中的乱码解决
- 我的java开发中的乱码解决
- Java开发必读 解决Java EE的乱码问题
- Java开发必读 解决Java EE的乱码问题
- Web开发乱码解决
- Anroid开发乱码解决
- Java开发中的乱码解决之终极之道
- java开发中Mysql中文乱码问题的解决
- 解决Java中Web开发的中文乱码问题
- Ubuntu MySQL下JAVA开发中乱码问题的解决
- java Web开发 编码设置(解决乱码)
- Java Web 开发中文乱码的解决方式
- Ubuntu MySQL下JAVA开发中乱码问题的解决
- freemarker 解决中文乱码问题(java开发)
- 终结解决Java Web开发过程中的中文乱码问题
- 对比JAVA学习PHP系列:面对对象
- [Unity热更新]tolua# & LuaFramework(十四):更新下载(中)
- mongodb复制和分片
- POJ2689 Prime distance 素数
- C#访问Access完整增删改查代码
- java开发乱码解决
- HTML5(李炎恢)学习笔记四 ------------- HTML5元素(中)
- 前端的小玩意(8)——旋转的盒子(纯CSS动画效果)+可自由拖动(js)
- marquee标签的向上无缝滚动
- Linux系统编程之信号的可重入性
- 【bzoj2002】【Hnoi2010】【Bounce】【弹飞绵羊】【分块】
- @ManyToMany 映射
- mybatis基础知识——学习笔记(1)
- Java ClassLoader深入解析(一)