1. 程式人生 > >在jsp頁面的url連結傳遞中文引數的亂碼問題

在jsp頁面的url連結傳遞中文引數的亂碼問題

已知專案中配置如下:

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");

就會獲得到中文正確顯示引數!