代码:
javascript:
var rul = "/controller/action?param=encodeURIComponent('测试参数')";
var encodedUrl = encodeURI(url);
服务器端代码:
string code = HttpUtility.UrlDecode(param, Encoding.UTF8);
注:
encodeURIComponent()
函数将转义用于分隔 URI 各个部分的标点符号
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
encodeURI()
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
简单点说,encodeURIComponent()就是对uri中的参数单独编码的,因为它会把uri中的分隔符也进行转换,而 encodeURI()则是对整个uri进行编码的,它不会转义uri的分隔符。