<a href="test.jsp?name=学习"></a>如果要这样把汉字传到test.jsp为什么<%@ page contentType="text/html;charset=gb2312"%>这样设置以后还是乱码?谢过!!
解决方案 »
- 高手们帮我看看我哪错了
- 要找在上海找工作了!请问这个时候在上海找份Java开发程序员的工作难吗???
- 这样的关系在hibernate中怎么做?
- 请高手帮看看这是怎么回事?????
- 求可配置的动态生成方案!
- 求Spring 获取 web 程序路径的问题
- 急问:weblogic8.1对jstl1.0支持得怎么样
- 我的tomcate的默认发布目录是webapps/root/ 啊,如何自定义呢?
- 请推荐一下好的JSP源程序。本人是JSP初学者。
- 一个很奇怪的问题,javamail有一些新问题,高手们解决了一定会给分你们的。
- 写页面时遇到了一个数据库的问题,由于是很低能问题,就在这问问吧。
- 速求:这条语句错了吗?PS:我正在求职上机
1.在test.jsp中用
String s=(String)request.getParameter("name");
s=new String(s.getBytes(("ISO-8859-1"), "gb2312");
out.println(s);2.配置过滤器,虽然filter默认只处理,但修改以下参数filter也可对get请求过滤(这一点很重要):
2.1
修改$TOMCAT/conf/server.xml文件,在HTTP Connector或者AJP Connector的配置加上URIEncoding="gb2312"
<... maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="gb2312" />
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="gb2312"/>
2.2
使用useBodyEncodingForURI="true". 表示用处理post的方式也对get请求处理
<... maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true" />
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" useBodyEncodingForURI="true" />这两种方法都可用,我一般用第二种。
s.getBytes(("ISO-8859-1"), "gb2312");
String好像没 getBytes(String string , String string) 这个方法
方法2可以
9楼说的解码该么解???
用URLDecoder.decode(name , "GB2312") 不行
java2000说的那个方法应试是要解码的吧
服务器解码:接受到name 后,
String str = java.net.URLDecoder.decode(name, "UTF-8");
假如你上一个页面用的是GBK就这么写就可以了
String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"), "GBK");
这样就可以了。一般不要用url编码,需要解码的。而且可能受浏览器影响。