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

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

我要的效果:gq_search.aspx?k=%爱情&cls=XXX

asp.net要用url传递中文,必须要先编码,然后接收的时候再解码 如若不然 将接收到不完整的中文。其中Server.UrlEncode(k)就是编码 Server.UrlDecode(k)就是解码
不知道你要外显中文有和用处,如果一定要达到你要的效果,那就再用一个参数吧 一个拿来编码 一个不编码 但是后台接收的时候就只接收编码了的那个 明文的那个参数直接忽略、、则形成如下地址:
gq_search.aspx?k1=爱情&k2=%u6d77%u4ea7
两个参数值虽然不同 但是都是' 爱情'
至于cls 则类似 不知道有没有达到你的要求??
————————
如果你认为上面的方法不可取,那请配置web.config,将页面整体编码 则可以传递中文
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-13
老大 不使用 urlencode会有严重的 XSS 漏洞,你的网站不想要了, 如果你真的 不想urlencode 为什么不直接
Response.Redirect("gq_search.aspx?k=" + k + "&cls=" + cls + "");
第2个回答  2009-03-13
Response.Redirect("gq_search.aspx?k=" + k + "&cls=" + cls + "");
这样就能直接显示中文
第3个回答  2009-03-13
Server.UrlEncode(k) 换成k就好了啊
第4个回答  2009-03-13
对应 UrlEncode 有没有 UrlDecode?
相似回答