get方式中文乱码解决方法
2013-09-29 12:07
357 查看
博客分类:
Java-综合
JBossTomcatXML
有的时候 我们在通过后台取前台的数据的时候会出现乱码
比如 String username = request.getParameter("username");时就会出现。
解决办法:如果你想单独解决这一个,那你就用
String username = new String(request.getParameter("username").getBytes("iso-8859-1"),"GBK")
如果想统一解决永无后顾之忧(前提是尽量都采用一种方式,否则以前有用过上面的方式的回出现乱码):
如果用的服务器是jboss: 找到server\default\deploy\jbossweb-tomcat55.sar\server.xml 打开 找到
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
换成
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
ok 重新发布,重启一下jboss 搞定。
如果用的是 tomcat服务器:同上,找到 Tomcat 6.0\conf\server.xml
<Connector port="8989" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
换成
<Connector port="8989" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK" />
当然这种修改服务器的方法虽然可以解决办法,但是这并不是最好的办法。如果能够用修改程序的办法来达到同样的效果的话 建议还是用修改程序的办法
<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<%request.setCharacterEncoding("gb2312");%>
servlet&jsp乱码问题
SERVLET
1、页面本身有中文的时候,一个要在写PrintWriter out = resp.getWriter();之前加这句话:
resp.setContentType("text/html;charset=GBK");
2、解决POST方式提交表单的中文乱码问题方法:
在获得第一个参数之前加以下语句:req.setCharacterEncoding("GBK");
3、解决GET方式提交表单的中文乱码问题方法:
修改conf目录下的server.xml 在Connector标签中(即修改8080端口的标签)中加一句话
URIEncoding="GBK"
JSP
加入以下两段代码则可解决大部分乱码问题:
<%@ page contentType="text/html;charset=GBK"%>
<%request.setCharacterEncoding("GBK");%>
解决Servlet中的中文乱码问题:
1、静态中文信息乱码
response.setContentType("text/html; charset=gbk");
2、中文输入乱码
request.setCharacterEncoding("gbk");
String name =new String(request.getParamete("name").getBytes("iso-8859-1"));
servlet中输出流的默认字符编码是ISO-8859-1的
fileName=response.encodeURL(new String(fileName.getBytes(),"ISO8859_1"));//转码
运行后结果如下:
匿名 回答:2 人气:3 解决时间:2010-04-22 22:28
满意答案好评率:0% 楼上的说法是对的。。但是写的不对
String name=request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
评价答案
您已经评价过!好:0 您已经评价过!不好:0 您已经评价过!原创:0 您已经评价过!非原创:0 废人 回答采纳率:36.7% 2010-04-22 21:06 满意答案好评率:0% 首先你要弄清楚 如果是用url传的话 url的传递是用编码 ISO-8859-1 而你的编码不是这个
所以你去到的值是乱码,你要去转码就可以了
比如常用的方式
request.getParameter("name")=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
public static String toChi(String input) {
try {
//byte[] bytes = input.getBytes("ISO8859-1");
//return new String(bytes);
//下面两行针对tomcat5。5 配置 encode为utf-8时候
byte[] bytes = input.getBytes("UTF-8");
return new String((new String(bytes)).getBytes("ISO-8859-1"), "gb2312");
}catch(Exception ex) {
}
return null;
}
相关文章推荐
- IE浏览器用GET方式传递中文字符出现乱码问题的解决方法
- Java后台使用get方式远程跨域请求,返回数据为中文乱码解决方法
- jsp中get(URI)方式提交表单的中文乱码解决方法
- IE下get方式传中文参数乱码解决方法
- tomcat里面表单以get方式提交出现中文乱码解决方法
- JSP 表单输入,UTF编码,get方式提交数据出现中文乱码解决方法
- 解决GET方式请求中文乱码的几种方法
- struts2或servlet的get请求方式中文出现乱码解决方法
- 以get方式提交中文参数乱码的解决方法
- struts2以GET方式接收的参数是中文时会乱码的解决方法
- IE浏览器用GET方式传递中文字符出现乱码问题的解决方法
- JAVA中Get、Post方式提交中文乱码解决方法
- post跟get方式中文乱码以及解决方法
- struts2以GET方式接收的参数是中文时会乱码的解决方法
- java用get方式发送中文乱码解决方法
- [前端]解决form表单采用get方式提交中文参数乱码的方法
- JAVA POST与GET数据传递时中文乱码问题解决方法
- 解决get方法传递URL参数中文乱码问题
- http协议4---GET方式和POST方式获取表单数据举例3(统一方式获取,解决中文乱码问题)
- jsp中 ajax的get请求的中文乱码问题的解决方法