2013-01-11 41 views
0

我有一个querystring参数是一个编码的字符串,它被转换为Base64。然后该参数嵌入到电子邮件中的链接中。当我点击电子邮件中的链接时,querystring参数已将其中的所有+字符替换为空格字符。没有其他差异。有没有我可以调用的方法来净化字符串,并有效地用空间替换空间。我目前正在做一个字符串替换,这有点胖。有些东西正在导致更换,但我不知道是什么。有没有人遇到过这样的事情?Base 64编码查询字符串参数获取字符替换

示例 - 浏览器的URL中的查询参数值:字符串的控制器操作中

yo3rZZbZyG4UCN+L3pcTYJXmWEggnkW1qcyJk2uBrVTtGUSKIlBcJ8e9TSx8BHjHJv0JhI8H6LbIqUl+3lA7qn+lOgpSi3rCGN4bm5moOWcCA449C1Z3zj7J1FkOXH2HMox4VUZ7x7fF65MRwuBBmw==

值:

yo3rZZbZyG4UCN L3pcTYJXmWEggnkW1qcyJk2uBrVTtGUSKIlBcJ8e9TSx8BHjHJv0JhI8H6LbIqUl 3lA7qn lOgpSi3rCGN4bm5moOWcCA449C1Z3zj7J1FkOXH2HMox4VUZ7x7fF65MRwuBBmw==

回答

2

你应该URL编码以base64字符串的链接,所以它是:

yo3rZZbZyG4UCN%2BL3pcTYJXmWEggnkW1qcyJk2uBrVTtGUSKIlBcJ8e9TSx8BHjHJv0JhI8H6LbIqUl%2B3lA7qn%2BlOgpSi3rCGN4bm5moOWcCA449C1Z3zj7J1FkOXH2HMox4VUZ7x7fF65MRwuBBmw%3D%3D 

HttpUtility.UrlEncode(base64str)在.NET或encodeURIComponent(base64str)在javascript

+0

点上 - 我称之为'HttpUtility.UrlEncode(base64str)'对参数的URL中嵌入前,就像一个魅力 – levelnis

0

因为+符号解释为一个标志说,另一个参数如下它是这样做的。这就是为什么它变得越来越重要。在将字符串传递给服务器之前,应该对您的字符串进行URL编码。