站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题关于JSP获取查询参数乱码的问题

关于JSP获取查询参数乱码的问题

摘要: 关于JSP获取查询参数乱码的问题


客户端 编码为:UTF-8 , form中使用的是get


<form action='mysearch' method='get'>
<input tyepe=submit value='提交'>
<input type=text value="中国" name="country">


服务器端,TOMCAT5

JSP:
<%@ page PageEncoding="GBK"%>
<%@ page ContentType="content=text/html;charset=utf-8"%>

<%request.setCharacterEncoding("UTF-8");
String s = request.getParameter("country");
out.println(s); //出现乱码,好像request.setCharacterEncoding("UTF-8");没起作用

String ss = new String(s.getBytes("ISO-8859-1"), "UTF-8");
out.println(ss);//正确

%>

换成WEBLOGIC 8.1

JSP:
<%@ page PageEncoding="GBK"%>
<%@ page ContentType="content=text/html;charset=utf-8"%>

<%request.setCharacterEncoding("UTF-8");
String s = request.getParameter("country");
out.println(s); //正确

%>

我试验了POST, 发现当参数是POST方法传送时,可以都正确。
而当参数是GET过去时,“GET后面的参数在读取时,TOMCAT会出错,除非使用,String ss = new
***************
String(s.getBytes("ISO-8859-1"), "UTF-8");转换一下。
不知道是TOMCAT的问题还是我的程序的问题。



get方式传的参数是这样的,可以在传之前 把参数编码
java.net.URL.URLEncoder.encode(str,"utf-8");就可以了
或者修改tomcat的server.xml里有一个设置字符集的
你那里现在应该是设的GBK 你改成utf-8就可以了


http://blog.csdn.net/minisun2000/archive/2006/09/28/1302100.aspx
自己去看看吧,tomcat对post和get方式处理不一样


帮忙顶


TOMCAT中setCharacterEncoding对GET方法无效。


是TOMCAT的问题,如果不更改设置的话,TOMCAT5版本确实只能用post方式传输汉字,不能用get方式传输汉字,method='post'吧,post多好使啊


加一个过滤器有就ok


我查询了一下TOMCAT5的帮助。在 webapps/tomcat-doc

在tomcat安装目录/conf/server.xml的connector 中设置, URLEncoding="编码方式" 而不要使用request.setCharacterEncoding. 可以确定服务器方读取url后面参数的编码方式。

若设置useBodyEncoding="true",则设置request.setCharacterEncoding(), 则该设置对url的编码也起作用。默认是false.


↑返回目录
前一篇: 一个简单的javabean使用的问题
后一篇: jsp操作数据库mysql,当sql语句中有单引号如何处理呢?有没有专门的过滤函数?