日期:2014-05-18  浏览次数:20370 次

url的编码问题.
我在浏览器直接输入
http://192.168.1.1/?key=周星驰

可以查询到我要的信息。

可以如果使用string   mm== "周星驰 ";
Response.Redirect( "http://192.168.1.1/?key=mm ");

浏览器的地址栏变成了http://192.168.1.1/?key=%e5%91%a8%e6%98%9f%e9%a9%b0

而且查询不到我要的记过了.

请问这个问题怎么解决?编码哪里出了问题吧?


------解决方案--------------------
string mm== "周星驰 ";
Response.Redirect( "http://192.168.1.1/?key= " + mm);
------解决方案--------------------
浏览器不支持中文
------解决方案--------------------
http://192.168.1.1/?key=%e5%91%a8%e6%98%9f%e9%a9%b0

取值的时候用Server.UrlDecode( "%e5%91%a8%e6%98%9f%e9%a9%b0 ")来取值
------解决方案--------------------
up
------解决方案--------------------
一般有3种方法:
1.设置web.config文件

<system.web>
......
<globalization requestEncoding= "gb2312 " responseEncoding= "gb2312 " culture= "zh-CN " fileEncoding= "gb2312 " />
......
</system.web>
2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
> > 进行传递
string Name = "中文参数 ";
Response.Redirect( "B.aspx?Name= "+Server.UrlEncode(Name));
> > 进行接收
string Name = Request.QueryString[ "Name "];
Response.Write(Server.UrlDecode(Name));

3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
> > 进行传递
<script language= "JavaScript ">
function GoUrl()
{
var Name = "中文参数 ";
location.href = "B.aspx?Name= "+escape(Name);
}
</script>
<body onclick= "GoUrl() ">
> > 进行接收
string Name = Request.QueryString[ "Name "];
Response.Write(Server.UrlDecode(Name));

一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。

或用

Response.Redirect( "test1.aspx?111= "+System.Web.HttpUtility.UrlEncode( "中华人明共和国 ")); //建议使用


引用lizhizhe2000(武安侯)的。希望对你有所帮助
------解决方案--------------------
string mm== "周星驰 ";
Response.Redirect( "http://192.168.1.1/?key= " + mm);
在接收的页面获取时用:Requestp[ "key "];
------解决方案--------------------
//传递参数,Url编码
Response.Redirect( "http://192.168.1.1/?key= " + Server.UrlEncode( "周星驰 "));

//接受参数,反编码
string param = Server.UrlDecode(Request.QueryString[ "key "]);
------解决方案--------------------
Response.Redirect( "http://192.168.1.1/?key=mm ");

浏览器的地址栏变成了http://192.168.1.1/?key=%e5%91%a8%e6%98%9f%e9%a9%b0

这个可以实现????不是吧