用URL传参数的时候,用&符号连接,如果某一个参数中含"#$ ^ & * + ="这些符号的时候,在另一个页面就会取不到传过来的参数。
解决办法:
ASP.NET CORE:
编码EscapeDataString(解码UnescapeDataString)
//编码
var url="http://www.baidu.com&text=" + Uri.EscapeDataString("(*&^%$#@!!")
输出:
http://www.baidu.com&text=%28%2A%26%5E%25%24%23%40%21%21
//解码
var val= Uri.UnescapeDataString("%28%2A%26%5E%25%24%23%40%21%21");
输出:
(*&^%$#@!!
Uri.EscapeUriString:用于对网址编码(不包含参数)
string url1 = "http://www.baidu.com/a b c
Response.Write( Uri.EscapeUriString(url1));
//outputs:
http://www.baidu.com/a%20b%20c
Uri.EscapeUriString对空格、中文进行了编码,但对冒号(:)、斜杠(/)和井号(#)未编码,所以此方法可以用于网址进行编码,但不能对参数进行编码,作用类似JavaScript中的encodeURI方法。
JS:
编码:encodeURIComponent() (对应解码为:decodeURIComponent() )
不会转义的字符: – _ . ! ~ * ‘ ( )
这篇文档对您是否有帮助?