编程环境: tomcat6 + struts2.2.3
页面编码: utf-8
struts.i18n.encoding = UTF-8 问题:当我的url带中文参数时【如:http://localhost:8088/web_project/s?param=高级管理】时,如果是超链接点击过去,则后台获取参数是不会乱码,如果我在地址栏回车,则此时后台获取参数时,则出现乱码
以下方法都行不通,例如:
(1)在tomcat中配置中加上URIEncoding="UTF-8"
(2)过滤器 哪位大哥帮忙看下,这种问题如何解决,拜谢!
页面编码: utf-8
struts.i18n.encoding = UTF-8 问题:当我的url带中文参数时【如:http://localhost:8088/web_project/s?param=高级管理】时,如果是超链接点击过去,则后台获取参数是不会乱码,如果我在地址栏回车,则此时后台获取参数时,则出现乱码
以下方法都行不通,例如:
(1)在tomcat中配置中加上URIEncoding="UTF-8"
(2)过滤器 哪位大哥帮忙看下,这种问题如何解决,拜谢!
解决方案 »
- Hibernate (Unknown entity: java.util.HashSet)
- SSH结合,Spring查询问题
- 405错误,在线等!!
- 根据周数 请本周日期
- 实际项目中(Jsf+Spring+Hibernate)的多层调用时.xml文件的配置问题,对依赖注入的困惑
- 新手初级问题
- 如何判断编辑框中输入的是int而不是其他字符,除了抛出异常还有其他方法吗(在线等待,多谢!)
- 跑了14个网站都没有下载到CVS,苦哇!各位有没有可用的地址?高分相送,对了,还有在Jbuilder 7下设置Weblogic Server 7时会碰到在Librar
- j2ee中字符终端怎么处理?
- 有两道scjp的试题,但是我不知道选什么,请各位同盟帮忙看一下
- 关于i+++++i问题
- 请教一个关于事务的问题
记得要重新启动。
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>*.html</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
name = encodeURI(encodeURI(name));
action中解码
String name = URLDecoder.decode(user.getName(), "utf-8");
我就是这么解决的
a:如果是get方式,在tomcat中,在conf/server.xml文件中8080端口的connector元素增加URIEncoding="utf-8"
b:如果是post方式,在servlet中,request.setcharactorEncoding("utf-8");放在request.getparameter之前
servlet相应中文,客户端显示乱码:response.setCharactorEncoding("utf-8");该代码要放在
response.getWriter之前
页面jsp中
url = encodeURI(encodeURI(url));
然后在后台action中解码
String name = URLDecoder.decode(user.getName(), "utf-8");
但是还会存在问题:假如我把解析后的url拷贝到其它浏览器(比如火狐)再回车,还会是乱码! 最后我是参照百度对中文参数的做法,发现它好像是GB18030编码,然后我也把我的tomcat编码改成GB18030,所有的页面都改成GB18030编码,同时也对url进行编码,action中解码成utf-8,
结果好像可以达到预期效果:将同一url拷贝至不同浏览器中访问,都不会乱码. 不知道这样处理会有问题不???