Jsp頁面通過href拼接url向後臺傳中文亂碼問題
阿新 • • 發佈:2019-02-09
需求是將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);