JavaScript報錯: malformed URI sequence , URI不合法
阿新 • • 發佈:2018-11-09
一。報錯場景
後臺對中文引數編碼後,在JS裡面獲取到引數並解碼的時候報錯
後臺程式碼:
/m3/apps/v5/biz/html/bizInfo.html?date="+new Date().getTime()+"&menuId="+menuId+"&name="+URLEncoder.encode("我的第二個一級選單")&fromUrl=default.html")
前臺程式碼:
function _getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)" ); //構造一個含有目標引數的正則表示式物件
var r = window.location.search.substr(1).match(reg); //匹配目標引數
if (r != null) return decodeURIComponent(r[2]);
return null; //返回引數值
}
檢查後臺程式碼發現中文編碼的是這樣的:
java.net.URLEncoder.encode(client.name); 並提示該方法是過時的了.
於是將其編碼改成: java.net.URLEncoder.encode(“中文”, “UTF-8”); 便OK了.