gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1377
阅读:3287回复:1

url传参,参数包含特殊字符 如空格(%20)和换行(\n)的处理方法

楼主#
更多 发布于:2021-12-29 15:03


问题描述:

通过url传递字符串参数 ,字符串包含空格和换行,传递后获取到的参数不能正确显示(空格变为%20,换行消失)



var str = "abc de \nabc de";
var url = './index.html?str='+ str;





获取到的参数str变为:abc%20de%20abc%20de


可通过以下方式对字符串进行处理:



1.通过 encodeURIComponent 转码后传递:



var str = "abc de \nabc de";

var url = './index.html?str='+ encodeURIComponent(str); // 转码





  1. 从url获取参数后进行解码处理:


str = decodeURIComponent(str); // url传参后解码
console.log(str); // 得到正确格式的str
str = str .replace(/\n/g,"
"); // 将/n换行 替换为 页面换行符
gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1377
沙发#
发布于:2021-12-29 15:07
在js中URL的参数中若有空格时,在后天是获取不全参数的内容。
如:var str = “WIN7 网络测试”,中间带有空格。


$.post({
    url: "java/alarm&name="+str,
})




这样时,后台获取不到空格后面的数据,就会有问题。
解决办法:可以用js中的encodeURI(String)或encodeURIComponent(String)方法。
encodeURI:对整个的url进行编码时使用。
encodeURIComponent:对某个url中的参数进行编码。


若是上面这种情况,只是对url中的参数进行编码,则可以用encodeURIComponent(str)方法对参数进行处理。当然两个方法还可以编码其他不能在URL中出现的字符。


原文链接:https://blog.csdn.net/qq_30051139/article/details/50883915
游客


返回顶部