最近做毕业设计做得头大,cookie乱码,不能用,在网上找了好久才找到这篇好文,顶!
原文地址:http://www.czbin.cn/NET.COOKIES.CODE.001.php
先请大家看以下代码(如果您的COOKIE出现了乱码肯定是这样写的):
以VB.NET为例:
写COOKIE:
Dim acookie As New HttpCookie(user)’定义一个COOKIE,COOKIE名是当前登陆的用户名
acookie.Values.Add("user",user) ‘给这个COOKIE加一个属性"user",内容为当前的用户名
acookie.Values.Add("pass", pass)
Response.AppendCookie(acookie)
读COOKIE:
Dim acookie As HttpCookie = Request.Cookies(user) ‘User_Txt是输入用户名的文本框
Session("user") =acookie.Values("user").ToString.Trim
Session("pass") =acookie.Values("pass").Trim.Trim
其实这样就忽略编码的问题,正确的写法应该是这样的:
写COOKIE:
Dim acookie As New HttpCookie(user)
acookie.Values.Add("user", HttpUtility.UrlEncode(user)) ‘写COOKIE时进行编码
acookie.Values.Add("pass", HttpUtility.UrlEncode(pass)))
Response.AppendCookie(acookie)
读COOKIE:
Dim acookie As HttpCookie = Request.Cookies(user)
Session("user") = HttpUtility.UrlDecode(acookie.Values("user").ToString.Trim)
Session("pass") = HttpUtility.UrlDecode(acookie.Values("pass").Trim.Trim) ‘读COOKIE时进行解码
这样再读出来的COOKIE值就不会再是乱码了。
题外话:
这段代码是用VB.NET写的,其实我也喜欢用C#,但是之所以还是采用了VB语法,主要是因为懂C#的话我想看VB.NET肯定不会吃力。所以鉴于篇幅 原因我就只写了VB代码,至于C#么,COPY回去,自己加个分号,大小写和语法改下就可以执行了。说实话现在的C#和VB.NET的语法真的是没有太大 差别了,感觉上好象VB.NET里可以运行的代码,拿到C#里加个分号,改下大小写,再把VB.NET里的"()"改成"["]"(当然函数除外)。然后再 把for啊if啊什么一改,基本就可以了,当然C#里类new的时候别忘记加上括号。不知道是不是现在的高级语言的语法都趋于统一了呢?难道这就是编程语 言傻瓜化?难道真的哪天我们对着电脑说:“帮我做个网站”,电脑就自己把代码写好了???????


要说点啥就在这吧