JS的編碼與解碼
今天遇到這樣一個問題,通過JS傳遞的URL中包含了一個中文詞語,傳遞過去的值就變成了亂碼,后來上網上一查,才發現,原來JS傳遞URL參數是采用UTF-8,而我們平常的地址欄傳遞編碼格式是“ISO-8859-1”,因此在通過JS傳遞參數的時候,必須先編碼,然后在使用的時候進行解碼,針對此情況,我們可以寫下面的一個方法,對它方便的進行轉換:
public static String decodeParamString(String paramValue)
{
if(paramValue==null)
return null;
try
{
String tmp0=URLEncoder.encode(paramValue, "ISO-8859-1");
String result=URLDecoder.decode(tmp0, "utf-8");
if(log.isInfoEnabled())
log.info("原始字符串:"+tmp0+",解碼結果:"+result);
return result;
}
catch(Exception e)
{
log.error("解碼失?。?, e);
return null;
}
}
不過在傳遞URL的時候,需要先對URL進行處理url+=encodeURI(url);
然后在接收參數的時候進行轉化,呵呵,通過實際測試,效果還是不錯的!