问题是这样的,最近做Javaweb方面的开发,我用jsp和struts2做的项目,
jsp的url后跟中文参数,到struts的action里查看属性总是乱码,不知道是什么问题。
注意下:我已经把编码统一了,还是会出现这个问题。而且不同的浏览器出现的而问题还不一样。
急。跪求高手解决
jsp的url后跟中文参数,到struts的action里查看属性总是乱码,不知道是什么问题。
注意下:我已经把编码统一了,还是会出现这个问题。而且不同的浏览器出现的而问题还不一样。
急。跪求高手解决
解决方案 »
- jdbc连接sqlserver2005报:到主机的TCP/IP 连接失败
- WebService不会写啊,哪位大哥教教我啊,急啊
- 我的程序总是报java.lang.NumberFormatException: null,大家能帮我看看吗?谢谢!
- 如何获取数据库下最近的一条记录
- jsp 乱码问题
- java.lang.ClassCastException:
- jsp与Mysql的连接问题,用户名登陆!
- jstl1.0和1.1有什么本质区别,为什么1.1要jsp2.0才支持?
- 新手急问题
- redhat9.0下APACHE2.X与TOMCAT整合问题,很怪异
- Graphics2D 制图
- 关于处理重复提交的问题
你用post提交就没问题了
或者你转下码 具体方法百度下 这类帖子很多
String urlParam= request.getParameter("urlParam");
urlParam= new String(urlParam.getBytes("ISO-8859-1"), "UTF-8");
就是在Action中得到传递过来的参数后再将字符编码修改为你设置的字符编码,如“UTF-8”。
因为Servlet默认的字符编码为"ISO-8859-1",前台传递过来的请求如果没有提交而是直接传递给Action
Servlet 不会将默认的字符编码转化为你自己设置的字符编码。
希望可以帮助你。
要使用post传参 就不用转码
在JSP页面编码,再处理的action那里解码,,编码可以用js的方法
var cName1 = encodeURI("asd");
var password = encodeURI($("#password").val());
之前我就是这样解决的
server.xml中在相对应的端口中加下面两句
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>替换为:<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
这个绝对能行
我就遇到过这种情况 改为post提交就好了
server.xml中在相对应的端口中加下面两句
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
server.xml中在相对应的端口中加下面两句
useBodyEncodingForURI="true"
URIEncoding="UTF-8"
你可以弄一个表单提交
URL 是要转码的! java.net 包下URLEncoder 设置编码
这个好使,早几天知道,我就不要改那么多页面了从jsp传到受托管bean,我们原先的代码是:
jsp中调用EncodeURI
managedbean中直接使用;被我改成jsp中调用两次EncodeURI
managedbean中调用java.net.URLDecoder.decode(xxx,"UTF-8");而server.xml中加上URIEncoding="UTF-8"
原先的代码就好用了,当然我改过的代码也能使,就这样了。