1. 程式人生 > >Jsp頁面通過href拼接url向後臺傳中文亂碼問題

Jsp頁面通過href拼接url向後臺傳中文亂碼問題

需求是將jsp頁面的中文內容通過url形式傳給後臺,若不經過編碼轉換直接傳中文後臺接收到的是亂碼,想要獲取到正確的資料就需要對中文字元進行編碼轉換,到後臺以後在進行解碼獲取到正確的資料。

在jsp頁面中,對漢字進行兩次編碼拼接到url中。

<a id=sendInfo href="#" onClick="javascript:location.href='${ctx}/good/goodBaseInfo/form?id=${goodBaseInfo.id}
&typeId=${tyId}${returnTypeId}&typeName='+encodeURI(encodeURI('${returnTypeName}
'))+encodeURI(encodeURI('${tyName}'))+'&aId=${arId}${returnAreaId}&aName='+encodeURI(encodeURI('${returnAreaName}'))+encodeURI(encodeURI('${arName}'))"
> <img width="80px" height="80px" src="${ctxImage}/${goodBaseInfo.logoUrl}" /> </a>

在後臺controller中,匯入import java.net.URLDecoder;包,採用URLDecoder.decode()進行解碼。

try {
                tyname = URLDecoder.decode(goodBaseInfo.getTypeName(),"utf-8");
                arname = URLDecoder.decode(goodBaseInfo.getaName(),"utf-8");        
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace
(); } model.addAttribute("typeName",tyname); model.addAttribute("areaName",arname);