query路由传值出现乱码问题
原因:传值过程中,浏览器强制对所传的数据进行了encodeURI加密
//拓展:encodeURI
//将字符串中的空格和中文字符进行了编码,而保留了 :、/ 和 ? 等字符。这样的编码结果可以用于构建 URI
let queryString = "https:api.com/?str=编码";
let encodedString = encodeURI(queryString);
//可以看到输出的内容中文乱码了
console.log(encodedString); // 输出: "https:api.com/?q=JavaScript%20%E6%95%99%E7%A8%8B"
解决:使用decodeURI,当然前提是获取到传来的值
//ecodeURI 将经过编码的字符串恢复为原始字符串,并还原了其中的空格和中文字符。
let originalString = "https:api.com/?q=JavaScript%20%E6%95%99%E7%A8%8B";
let encodedString = encodeURI(originalString);
console.log(encodedString); // 输出: "https:api.com/?str=编码"
补充:
如果获取对应的query传的值,可以根据不同的应用框架,比如项目中使用的是Vue还是React,使用对应的api,获取query的传值即可