前端用法
1,escape方法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法
2,unescape 函数可对通过 escape() 编码的字符串进行解码。
该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。
后端用法
1,Server.UrlEncode(url)
对 URL 字符串进行编码。 这些方法重载可用于输入整个 URL,包括查询字符串值。
URL 编码确保所有浏览器正确地传输是在 URL 字符串的文本。字符 (如问号 (?), " and " 符 (&),正斜杠 (/) 和空格。某些浏览器被截断或损坏。因此,必须对这些字符在 <a> 标记或字符串可由在请求字符串的浏览器重新发送的查询字符串。
UrlDecode是一种便捷访问 HttpUtility.UrlDecode 方法在从 ASP.NET 应用程序的运行时。在内部, UrlDecode 使用HttpUtility.UrlDecode 解密字符串。
下面解决页面 带n多参数 回传问题
假设 我的路径 是 www.csdn.com?id=12&uid=12&orderturnUrl="www.baidu.com?pid=12&typeid=12'
挂了 n参数
这是你要把orderturnUrl="www.baidu.com?pid=12&typeid=12'这行进行编码
下面演示解码操作
<script type="text/javascript" language="javascript">
//谈勇 2012-10-23
function pageGoto() {
var strReturnUrl =' <%= Request["orderturnUrl"] %>';
if (strReturnUrl != null && strReturnUrl != "") {
location.href = unescape(strReturnUrl);
}
else {
location.href = 'a.aspx';
}
}
</script>