ASP.NET URL 中文参数

ShowParm.aspx:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
地址栏中直接输入:
http://localhost:6391/WEB/PARM/ShowParm.aspx?parm=中文参数

Request.QueryString["parm"].ToString()获取到的是乱码。
当点击页面中的一个服务器端按钮回发后,地址栏变为:
http://localhost:6391/WEB/PARM/ShowParm.aspx?parm=%ufffd%ufffd%ufffd%u0132%ufffd%ufffd%ufffd

用javascript可以获取地址栏中的中文参数的,但我想知道怎么能让Request.QueryString["parm"]也能获取到这个参数,而不是乱码。

回发一下页面后,地址栏中的中文参数用了哪种编码?这其中的原理是什么?本人乃初学者,望哪位高人给指点一下!谢谢。
就这么多分了,全给了吧,希望高人不要嫌少。
直接给它传中文参数,显示不出来的真正原因是什么。
实际做的时候,是会编码之后再请求的。

贰壹肆伍拐
说的内容我之前已经了解。我想了解是原理方面的,能解释一下么。
不是加密解密,是编码解码。不要算法,说一下用的是哪种码就行了,大致流程讲一下就OK了。
本人初学者,对这方面所知甚少,我的理解是,把URL回发到服务器的时候,应该是把URL给编码了的。好象有什么 UTF-8,GB2312什么的,不是太懂。
服务器端在解析这个URL的时候,解码方法和编码时不一致,所以导致了参数乱码,不能正确的解析出来。
如果用javascript把URL中的参数给escape的话,服务器读Request.QueryString["parm"]就不会有乱码了。
不知道是不是这回事?
能把这个过程稍讲一下吗?

感谢 贰壹肆伍捌 的热心回答!!!

IE -> 工具 -> Internet选项 -> 高级 -> 总是以 UTF-8 发送(需要重启动)(在最下面)

回发的时候,是用了UTF-8编码格式对URL进行编码了的。

算了给分吧,自已再慢慢找资料看吧。
谢谢贰壹肆伍捌兄。

web.config中修改下面内容:(中文参数最好使用gb2312)
<globalization requestEncoding="gb2312" resp culture="zh-CN" fileEncoding="gb2312" />

在cs文件里传参的时候用UrlEncode:
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
接参的时候用UrlDecode:
Response.Write(Server.UrlDecode(Request.QueryString["Name"]));

脚本儿里传参的时候用escape:
location.href = "B.aspx?Name="+escape(Name);
接参的时候仍然用UrlDecode:
Response.Write(Server.UrlDecode(Request.QueryString["Name"]));

-----------

昂...这个哈..原理啊..你是指加密解密的原理..??
这个我还真不知道怎么说...就像 abc.ToString()似的..大家都知道是用来转换字符串的..可是几个人能说清楚ToString()内部原理....- -..

--------------

嗯.你理解的大致差不多.就是在传参的时候.编码不一样才会导致乱码.所以经过escape加密.接收的时候通过decode解密.就不会出现中文乱码的问题了.
温馨提示:答案为网友推荐,仅供参考