UrlEncode的问题
比如:一个按钮Response .Redirect ("Page.aspx?name=" & Server .UrlEncode ("我"))在Page页面Response.Write(Request.Url.ToString())
得出来的是"Page.aspx?name=我",但是浏览器显示的是UrlEncode 后的值。
是不是Request.Url或Response.Write自动转换的?
如何得到浏览器上面的显示的值(不用自己再转) --------------------编程问答-------------------- Request自动转的
Request.Url.Query没转的。 --------------------编程问答-------------------- UrlEncode了以后,
后面页面直接取参数就可以啦。 不用Decode的。
要去url的话用Server.UrlDecode(Request.Url.ToString())试试吧 --------------------编程问答--------------------
那有没有方法直接获取UrlEncode 后的值呢?
比如UrlEncode 后是"%25bb%25e7"
我要得到 "%25bb%25e7"(不能先获取到原来的值再转。)
--------------------编程问答-------------------- 不知道你想干什么 --------------------编程问答--------------------
比如说我存储“id=1&name=名字”作为参数存放到数据库,
在存放之前A页面先把它UrlEncode后作为值通过URL的方式传递到B页面,
再在B页面获取它存入数据库。
项目里我做了一个控件,根据URL传到来的值来判断显示的数据(因为显示的数据类型太多,而且页面每一个类型的参数都不一样,有些接收的可能是“id=1&name=名字”,或者“item=3&name=数据...”),如果把每个URL的值在数据库里当作字段的话太复杂了,而且还在增加中。
--------------------编程问答-------------------- 那你是想存什么数据呢?是自动UrlEncode之后的数据,还是手动UrlDecode的数据
手动UrlDecode就
NameValueCollection values = HttpUtility.ParseString(Reqeustl.Url.Query,Encoding.GetEncoding("你指定的编码");
String name = values["name"];
--------------------编程问答--------------------
不是存的问题,数据库里面什么都可以,取的时候转一下就行了
是这样:
B页面打开是URL是B.aspx?value=%e9%81%97%e6%86%be(UrlEncode 前value的值为“遗憾”)
我要在B页面里获取这个“%e9%81%97%e6%86%be”,而不是“遗憾”
不要说先获取“遗憾”,再UrlEncode 一下。因为name的值它本身也是一串带参数的URL(参数可能有中文),
生成时就已经对值UrlEncode 过了。
是上面你说Request自动转的,所以如果我要获取“%e9%81%97%e6%86%be”有没有方法直接得到,Request.Url.Query后通过SUBSting是可以的,就是麻烦点。
--------------------编程问答-------------------- NameValueCollection values = HttpUtility.ParseString(Reqeustl.Url.Query,Encoding.GetEncoding("你指定的编码");
String name = values["name"];
这样是不需要SubString的,你看这段代码有用到SubString吗?
补充:.NET技术 , C#