1、准备
string name = "杭州"; string strDefault = HttpUtility.UrlEncode(name,System.Text.Encoding.Default); string strASCII = HttpUtility.UrlEncode(name,System.Text.Encoding.ASCII); string strUnicode = HttpUtility.UrlEncode(name,System.Text.Encoding.Unicode); string strUTF8 = HttpUtility.UrlEncode(name,System.Text.Encoding.UTF8); string strUTF7 = HttpUtility.UrlEncode(name,System.Text.Encoding.UTF7); string name1 = HttpUtility.UrlEncode(name); name1 "%e6%9d%ad%e5%b7%9e" strDefault "%ba%bc%d6%dd" strASCII "%3f%3f" strUnicode "mg%de%5d" strUTF8 "%e6%9d%ad%e5%b7%9e" strUTF7 "%2bZ21d3g-" 2、转到另一个的页面测试: Response.Redirect(string.Format("SetJumpIEServerIP.aspx?a1={0}&a2={1}&a3={2}&a4={3}&a5={4}&a6={5}",name1,strDefault,strASCII,strUnicode,strUTF8,strUTF7)); 结果 (1)、Request.Url.Query 能够显示加密的数据 Request.Url.Query "?a1=%e6%9d%ad%e5%b7%9e&a2=%ba%bc%d6%dd&a3=%3f%3f&a4=mg%de%5d&a5=%e6%9d%ad%e5%b7%9e&a6=%2bZ21d3g-" string (2)、Request.QueryString只能显示HttpUtility.UrlEncode(name)的数据 Request.QueryString["a1"] 为: "杭州" string Request.QueryString["a2"] 为: "" string Request.QueryString["a3"] 为: "??" string Request.QueryString["a4"] 为:"mg]" string Request.QueryString["a5"] 为: "杭州" string Request.QueryString["a6"] 为:"+Z21d3g-" string 3、观点:Request.QueryString是很弱的,当非HttpUtility.UrlEncode(name); 加密时, 就不能正常获得数据。