Js的Url中传递中文参数乱码,如何获取Url中参数问题
16lz
2021-01-22
一、Js获取url中参数的方法:
/*
获取请求url参数数组
*/
function getUrlVars(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
function getUrlVar(name){
return getUrlVars()[name];
}
二、Js的Url中传递中文参数乱码问题
encodeURI编码,decodeURI解码为例。
1、传参页面:
<script type=”text/javascript”>
function send(){
var url = "test01.html";
var userName = $("#userName").html();
window.open(encodeURI(url + "?userName=" + userName));
}
</script>
2、 接收参数页面:
<script>
var urlinfo = window.location.href;//获取url
var userName = getUrlVar('userName');//拆分url得到userName參數值
$(“#userName”).html(decodeURI(userName));
</script>
1、传参页面
<script type=”text/javascript”>2 、 接收参数页面:
function send(){
var url = "test01.html";
var userName = $("#userName").html();
window.open(url + "?userName=" + encodeURIComponent(userName));
}
</script>
<script>
var urlinfo = window.location.href;//获取url
var userName = getUrlVar('userName');//拆分url得到userName參數值
$(“#userName”).html(decodeURIComponent(userName));
</script>
三:Js中escape,unescape,encodeURI,encodeURIComponent区别:
1.传递参数时候使用,encodeURIComponent否则url中很容易被”#”,”?”,”&”等敏感符号隔断。
2.url跳转时候使用,编码用encodeURI,解码用decodeURI。
3.escape() 只是为0-255以外 ASCII字符 做转换工作,转换成的 %u**** 这样的码,如果要用更多的字符如 UTF-8字符库 就一定要用 encodeURIComponent() 或 encodeURI() 转换才可以成 %nn%nn 这的码才可以,其它情况下escape,encodeURI,encodeURIComponent编码结果相同,所以为了全球的统一化进程,在用 encodeURIComponent() 或 encodeURI() 代替 escape() 使用吧!
更多相关文章
- js点击button按钮跳转到另一个新页面
- Javascript setTimeout 带参数延迟执行 闭包实现
- 当页面上有多个按钮时,按钮样式在页面加载上有厚的边框
- 调用另一个html页面后,选择列表值不会保持不变
- JavaScript实际应用:父子页面交互
- 如何使用jQuery在GET请求中传递参数
- 在javascript中调用带有双参数()的函数
- ajax请求中URL和参数的编码问题
- 执行javascript作为coldfusion页面加载