关于中文参数传递问题困扰了我2天了,终于在今天无意中给解决了!把我这两天的搜索,以及个人的思考拿来与大家分享。
解决方案--:使用java.net.URLEncoder.encode()可以对要传递的中文进行编码 。简单的程序如下:a.jsp















解决方案二:用JavaScript 实现UrlEncode和UrlDecode :















































配置完后,在加上了这个过滤器类就在action中就可以直接从form中接收gb2312编码的数据了,返回时自然也是gb2312了。但是这个好像需要servlet 2.2以上的容器。
解决方案四:
(1)推荐JSP和HTML的编码都设置为UTF-8;
(2)对于Tomcat4.x,为WEB程序编写一个监控所有URL请求的过滤器Servlet,在doFilter方法中对request参数执行request.setCharacterEncoding("UTF-8");,则在WEB程序中将不受中文问题的困扰,无论你采用什么样的WEB框架。 如方案三
3)对于Tomcat5.x,在上述步骤的基础上,只要修改安装目录中的config/server.xml,添加参数URIEncoding,将其设置为UTF-8。
按照上面的设定之后,在JSP或Servlet中取GET或POST过来的数据只需要如下一行常规的代码就可以了:String p1=request.getParameter("p1");
(2)对于Tomcat4.x,为WEB程序编写一个监控所有URL请求的过滤器Servlet,在doFilter方法中对request参数执行request.setCharacterEncoding("UTF-8");,则在WEB程序中将不受中文问题的困扰,无论你采用什么样的WEB框架。 如方案三
3)对于Tomcat5.x,在上述步骤的基础上,只要修改安装目录中的config/server.xml,添加参数URIEncoding,将其设置为UTF-8。
按照上面的设定之后,在JSP或Servlet中取GET或POST过来的数据只需要如下一行常规的代码就可以了:String p1=request.getParameter("p1");
4)
对于STRUTS,也可以直接使用它在Formbean中存储的表单数据了。
解决方案五:
a.jsp
<%
...
@ page language="java" pageEncoding="gb2312"
%>
<
html:link
page
="/form/gq_play.jsp"
paramId
="aa"
paramName
="list"
paramProperty
="gq_adress"
target
="_blank"
>
试听
</
html:link
>





gq_play.jsp










显示结果:D:/mymusic/饶天亮 - 做你的爱人.mp3 说明我的结果成功了。但当我将UTF-8 转换成gb2312确仍然是乱码。其中原由还不明白,不知哪为高人可以指点一二?
解决方案三:当用Request对象获取客户提交的汉字代码的时候,会出现乱码时使用此方案。
首先在web.xml上配置如下:

























































































