已知项目中配置如下:
strust2里面,在web.xml文件配置了如下:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
在jsp页面上有抬头:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
可是还是会出现传入参数乱码现象,
在jsp页面中参数rstStr0里面有中文,如果直接传入后台将会乱码,如下:
rstStr0 = ‘富强、民主、文明、和谐、自由、平等、公正、法制、爱国、敬业、诚信、友善’;
function Export(){
window.location.href='/szy/export.action?rstArr='+rstStr0;
}
解决方案如下:
1.在jsp页面中先转码如下:
function Export(){
window.location.href='/szy/export.action?rstArr='+encodeURIComponent(rstStr0);
}
在后台重编码:
rstArr = new String(rstArr.getBytes("ISO-8859-1"),"UTF-8");
就会获得到中文正确显示参数!
2.在jsp页面中先转码如下:
function Export(){
window.location.href='/szy/export.action?rstArr='+encodeURI(encodeURI(rstStr0));
}
在后台重编码:
rstArr = URLDecoder.decode(rstStr0,"UTF-8");
就会获得到中文正确显示参数!