Server.UrlEncode(k),我不要转码,怎么弄?

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:59:07
protected void Button1_Click(object sender, EventArgs e)
{
string k = TextBox1.Text.ToString().Trim();
if (k == "请输入您要查询的产品名称")
{
k = "";
}
string cls = DropDownList1.SelectedItem.Text.ToString();
if (cls == "产品")
{
Response.Redirect("product_search.aspx?name=" + Server.UrlEncode(k) + "");
}
else
{
Response.Redirect("gq_search.aspx?k=" + Server.UrlEncode(k) + "&cls=" + Server.UrlEncode(cls) + "");
}
}

现在点搜索,比如我输入“爱情”,点搜索URL就会显示:gq_search.aspx?k=%u6d77%u4ea7&cls=%u4f9b%u5e94
我现在不想转码,点搜索后,直接显示:gq_search.aspx?k=%爱情&cls=XXX

直接显示中文,请问我如何改上述代码?本人是菜鸟,请多多指教!
回复 萍水e相逢 :我不太懂,好像没有,我把UrlEncode改为UrlDecode,没用,还是转码:
gq_search.aspx?k=%u6d77%u4ea7&cls=%u4f9b%u5e94

我要的效

asp.net要用url传递中文,必须要先编码,然后接收的时候再解码 如若不然 将接收到不完整的中文。其中Server.UrlEncode(k)就是编码 Server.UrlDecode(k)就是解码
不知道你要外显中文有和用处,如果一定要达到你要的效果,那就再用一个参数吧 一个拿来编码 一个不编码 但是后台接收的时候就只接收编码了的那个 明文的那个参数直接忽略、、则形成如下地址:
gq_search.aspx?k1=爱情&k2=%u6d77%u4ea7
两个参数值虽然不同 但是都是' 爱情'
至于cls 则类似 不知道有没有达到你的要求??
————————
如果你认为上面的方法不可取,那请配置web.config,将页面整体编码 则可以传递中文

老大 不使用 urlencode会有严重的 XSS 漏洞,你的网站不想要了, 如果你真的 不想urlencode 为什么不直接
Response.Redirect("gq_search.aspx?k=" + k + "&cls=" + cls + "");

Response.Redirect("gq_search.aspx?k=" + k + "&cls=" + cls + "");
这样就能直接显示中文

Server.UrlEncode(k) 换成k就好了啊

对应 UrlEncode 有没有 UrlDecode?