從js向Action傳中文參數(shù)出現(xiàn)亂碼問題的解決方法
更新時(shí)間:2013年12月29日 16:38:19 作者:
Action獲取jsp表單中的中文參數(shù),只要整個(gè)項(xiàng)目都采用UTF-8編碼格式都不會出現(xiàn)亂碼問題;但JSP中用到JS,并從JS向Action傳中文參數(shù),就會出現(xiàn)中文亂的現(xiàn)象
做項(xiàng)目的時(shí)候,發(fā)現(xiàn)Action獲取jsp表單中的中文參數(shù),只要整個(gè)項(xiàng)目都采用UTF-8編碼格式都不會出現(xiàn)亂碼問題;但JSP中用到JS,并從JS向Action傳中文參數(shù),就會出現(xiàn)中文亂的現(xiàn)象。幾經(jīng)詢問百度,上面說法很多。
經(jīng)過實(shí)踐發(fā)現(xiàn)下面的方法可以解決中文亂碼問題:
JSP的JS中:中文參數(shù)用encodeURI(encodeURI(中文參數(shù))),經(jīng)過兩次轉(zhuǎn)碼。例如:
function show(next,id,realName){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].submit();
}
其中 realName是中文參數(shù)。故在提交的URL中將realName轉(zhuǎn)碼兩次。encodeURI(encodeURI(realName))
Action中:接收中文參數(shù)時(shí)解碼。用:java.net.URLDecoder.decode(realName,"UTF-8");
如:
String realName = ServletActionContext.getRequest().getParameter("realName");
try {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
經(jīng)過上述處理,問題解決。
經(jīng)過實(shí)踐發(fā)現(xiàn)下面的方法可以解決中文亂碼問題:
JSP的JS中:中文參數(shù)用encodeURI(encodeURI(中文參數(shù))),經(jīng)過兩次轉(zhuǎn)碼。例如:
復(fù)制代碼 代碼如下:
function show(next,id,realName){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].submit();
}
其中 realName是中文參數(shù)。故在提交的URL中將realName轉(zhuǎn)碼兩次。encodeURI(encodeURI(realName))
Action中:接收中文參數(shù)時(shí)解碼。用:java.net.URLDecoder.decode(realName,"UTF-8");
如:
復(fù)制代碼 代碼如下:
String realName = ServletActionContext.getRequest().getParameter("realName");
try {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
經(jīng)過上述處理,問題解決。
相關(guān)文章
js如何比較兩個(gè)日期的時(shí)間大小簡單代碼示例
在JavaScript中,日期比較涉及評估兩個(gè)日期,以確定一個(gè)日期是早于、晚于另一個(gè)日期還是與另一個(gè)日期相同,這篇文章主要給大家介紹了關(guān)于js如何比較兩個(gè)日期的時(shí)間大小的相關(guān)資料,需要的朋友可以參考下2024-06-06
js實(shí)時(shí)獲取并顯示當(dāng)前時(shí)間的方法
這篇文章主要介紹了js實(shí)時(shí)獲取并顯示當(dāng)前時(shí)間的方法,涉及javascript針對時(shí)間及頁面元素的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
判斷用戶的在線狀態(tài) onbeforeunload事件
window.event.clientX和window.event.clientY 將捕捉當(dāng)前事件發(fā)生時(shí)鼠標(biāo)相對與窗口的桌面坐標(biāo),通常情況下IE的關(guān)閉按鈕都會在頁面的右上部分,所以點(diǎn)關(guān)閉的時(shí)候鼠標(biāo)的坐標(biāo)的Y坐標(biāo)一定是小于0的2011-03-03
JavaScript實(shí)現(xiàn)垂直滾動條效果
這篇文章為大家詳細(xì)主要介紹了JavaScript實(shí)現(xiàn)垂直滾動條效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
復(fù)制小說文本時(shí)出現(xiàn)的隨機(jī)亂碼的去除方法
想把小說復(fù)制下來慢慢看,卻發(fā)現(xiàn)復(fù)制到記事本里出現(xiàn)一大堆亂七八糟的東西,很是不爽。于是就想了個(gè)簡單的辦法把它干掉了。2010-09-09

