一。报错场景
后台对中文参数编码后,在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了.