最近遇到一个JS通过Url传递中文参数,c#获取中文参数乱码的问题。解决方法如下:
正确的方法是:
JS
var reqUrl = document.location + "?key=" + encodeURI(keyword);
C#
string keyword = Server.UrlDecode(Page.Request.QueryString["key"]);
错误的方法:
JS
<span style="color:#ff0000;">var reqUrl = document.location + "?key=" + keyword;
</span>
C#
<span style="color:#ff0000;">string keyword = Page.Request.QueryString["key"];</span>
也就是说传参时要编码encodeURI,获取参数时要解码Server.UrlDecode。