我使用 Response.Redirect("xxx.aspx?aaa=" + Server.UrlEncode(sqlstr));把一个sql语句传到xxx.aspx页面,应该来说在xxx.aspx页面要使用Server.UrlDecode(Request["aaa"].ToString())来得到sql语句,但是奇怪的是在xxx.aspx页面只需string sqlstr=Request["aaa"].ToString();就可以得到我想要的值,而不用Server.UrlDecode进行解码,然而再使用Server.UrlDecode进行解码的话就会出错,这个是什么原因?比如: 
string sqlstr= "and number like'%20111%'";
Response.Redirect("xxx.aspx?aaa=" + Server.UrlEncode(sqlstr));//aaa=+and+u_number+like%27%2520111%25%27+//xxx.aspx页面string sqlstr=Request["aaa"].ToString();//sqlstr=and number like'%20111%'
//如果使用Server.UrlDecode
string sqlstr=Server.UrlDecode(Request["aaa"].ToString());//sqlstr=and number like'111%'
请问这是什么原因造成的?