asp.net URL传值的时候,值带百分号怎么得到这个百分号

如在跳转href="页面?name=%75"的时候值如果头带有百分号就被系统自动转义了。如何取到原始的%75这个值?楼下那个方法还是不行,如果我传的值是%78之类的两位数... 如在跳转 href="页面?name=%75"
的时候
值如果头带有百分号就被系统自动转义了。
如何取到原始的%75这个值?
楼下那个方法还是不行,如果我传的值是 %78之类的两位数字的话,就被自动转义成字母了。。。

%75只是个例子,意思是传值会传很多种类型的字符
展开
 我来答
horsoner
2010-06-24 · TA获得超过238个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:198万
展开全部
如果你的值带有特殊字符,建议你将值进行编码后再传,建议使用base64编码,接收到值后再解码就可以了,一般做网站的公共类中必然有base64的编解码类,你可以自己百度搜索一下。

/// <summary>
/// 将普通文本转换成Base64编码的文本
/// </summary>
/// <param name="value">普通文本</param>
/// <returns></returns>
public string Base64Encode(String value)
{
byte[] binBuffer =(new UnicodeEncoding()).GetBytes(value);
int base64ArraySize = (int)Math.Ceiling(binBuffer.Length / 3d) * 4;
char[] charBuffer = new char[base64ArraySize];
Convert.ToBase64CharArray(binBuffer, 0, binBuffer.Length, charBuffer, 0);
string s = new string(charBuffer);
return s;
}

/// <summary>
/// 将Base64编码的文本转换成普通文本
/// </summary>
/// <param name="base64">Base64编码的文本</param>
/// <returns></returns>
public string Base64Decode(string base64)
{
char[] charBuffer = base64.ToCharArray();
byte[] bytes = Convert.FromBase64CharArray(charBuffer, 0, charBuffer.Length);
return (new UnicodeEncoding()).GetString(bytes);
}

/// <summary>
/// 将Byte[]转换成Base64编码文本
/// </summary>
/// <param name="binBuffer">Byte[]</param>
/// <returns></returns>
public string toBase64(byte[] binBuffer)
{
int base64ArraySize = (int)Math.Ceiling(binBuffer.Length / 3d) * 4;
char[] charBuffer = new char[base64ArraySize];
Convert.ToBase64CharArray(binBuffer, 0, binBuffer.Length, charBuffer, 0);
string s = new string(charBuffer);
return s;
}

/// <summary>
/// 将Base64编码文本转换成Byte[]
/// </summary>
/// <param name="base64">Base64编码文本</param>
/// <returns></returns>
public Byte[] Base64ToBytes(string base64)
{
char[] charBuffer = base64.ToCharArray();
byte[] bytes = Convert.FromBase64CharArray(charBuffer, 0, charBuffer.Length);
return bytes;
}
zdy_servers
2010-06-24 · TA获得超过185个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:188万
展开全部
Server.UrlEncode(“参数”)
也可以使用javascript 的编码方式
href="页面?name=encodeURI("参数")
传送页代码编码

接收页代码 解码

Server.HtmlDecode(Request.QueryString["name"].Trim())
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ef932f4
2010-06-24 · TA获得超过722个赞
知道小有建树答主
回答量:357
采纳率:0%
帮助的人:393万
展开全部
我想你传的时候加上\是不是能把%留下来,试试吧。
实在不行你就传个percent75,完了接受参数时重新组合下字符串就行了。if(a.contain("percent")){
a = a.substring(7,2);
a = "%" + a;
}
有点2,但绝对行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿贺dw
2010-06-24 · TA获得超过612个赞
知道小有建树答主
回答量:1584
采纳率:99%
帮助的人:318万
展开全部
如果一定有%号的话,也就不必在传这个百分号了。直接传数字。然后获取的时候,加上%号不就可以了。

不知道有没有理解到你的意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友07f2face2
2010-06-24 · TA获得超过283个赞
知道小有建树答主
回答量:382
采纳率:50%
帮助的人:138万
展开全部
使用前先转换下

Server.UrlEncode,或者接收到时转换Server.UrlDecode
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式