asp.net读取asp的cookies 及乱码问题 ?? cookie的键名乱码。。。。。

U2008 2009-04-24 10:38:08


<div style="padding-top: 4px; text-align: right; font-weight: normal">
<%=request.Cookies("admin_session_offices")%>
  <%=request.Cookies("admin_session_caozuos")%>  <br>
累计登陆<%=request.Cookies("admin_session_cishu")%>次  </div>


---------------------------------------------以上是asp的读取。。


aspx:

HttpContext.Current.Request.Cookies["admin_session_offices"].Value 报错,而
HttpContext.Current.Request.Cookies["admin%5Fsession%5Fcaozuos"].Value 这样的取值却有效果,
郁闷,请教各位:如何统一把cookie里的键及值重新解码??


...全文
231 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
U2008 2009-04-24
  • 打赏
  • 举报
回复
在存取admin_session_caozuos时?

保存时,是原来asp项目保留下的,再改动,头就大了,
aspx能否在读取时,把以上的乱码编码进行转换呢
中年秃头大叔 2009-04-24
  • 打赏
  • 举报
回复
你在存取admin_session_caozuos时,用HttpUtility.UrlEncode()一下后再存取。到相应的页面时用HttpUtility.UrlDecode()解码一下就行了。不需要把整个URL编码或解码,只需要把相应的cookies编码就行了。
zzxap 2009-04-24
  • 打赏
  • 举报
回复
用session傳吧,cookies有些飘忽
U2008 2009-04-24
  • 打赏
  • 举报
回复


HttpUtility.UrlDecode(Request.Cookies["admin_session_caozuos"].Value);//解码


这样取值出错,因为asp保存后,在页面输出时,变为"admin%5Fsession%5Fcaozuos"

找不到对应的键,郁闷。
中年秃头大叔 2009-04-24
  • 打赏
  • 举报
回复
存取Cookies值时用HttpUtility.UrlEncode()编码后再存入cookies值中。

在下面这里
<div style="padding-top: 4px; text-align: right; font-weight: normal">
<%=HttpUtility.UrlDecode(request.Cookies("admin_session_offices"))%>
  <%=HttpUtility.UrlDecode(request.Cookies("admin_session_caozuos"))%>  <br>
累计登陆<%=HttpUtility.UrlDecode(request.Cookies("admin_session_cishu"))%>次  </div>

就可以了。因为存取cookies值时,若有汉字时会出现乱码。所以你在存取时不管有没有汉字都用HttpUtility.UrlEncode()编码一下再存取是最好不过了。
中年秃头大叔 2009-04-24
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode(Request.Cookies["admin_session_offices"].Value);//编码---在传递参数时用编码形式。
HttpUtility.UrlDecode(Request.Cookies["admin_session_offices"].Value);//解码---在接受页面时用解码形式就可以了。
fwhde0415 2009-04-24
  • 打赏
  • 举报
回复
请教Infragistics的WinGrid控件怎样禁止编辑一列,即这列不可编辑状态,还有有一列是decimal类型的数据,小数位为两位,如果小数点后面除了有效数字外只要为0的就不显示0,请教怎么处理?
如: 2.10 就显示2.1, 5.00 就显示5, 5.25 就显示5.25等.万分感谢!
沉序员 2009-04-24
  • 打赏
  • 举报
回复
<div width="100%">

</div>
沉序员 2009-04-24
  • 打赏
  • 举报
回复
萤火架构 2009-04-24
  • 打赏
  • 举报
回复
这个问题以前遇到过,
asp.net

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HttpCookie cookie = new HttpCookie("aspcn");
cookie.Value = DesEncrypt("bosima110asd@126.com", "woshiwoi");
Response.AppendCookie(cookie);
}


HttpCookie cookie2 = Request.Cookies["aspcn"];
Label1.Text = cookie2.Value;
}


asp这样获取
 <%
MyVar=Request.Cookies("aspcn")
MyVar=URLDecode(MyVar)
MyVar=replace(MyVar," ","+")
Response.Write(MyVar)

Function URLDecode(enStr)
dim deStr
dim c,i,v
deStr=""
for i=1 to len(enStr)
c=Mid(enStr,i,1)
if c="%" then
v=eval("&h"+Mid(enStr,i+1,2))
if v<128 then
deStr=deStr&chr(v)
i=i+2
else
if isvalidhex(mid(enstr,i,3)) then
if isvalidhex(mid(enstr,i+3,3)) then
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
i=i+5
else
v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
i=i+3
end if
else
destr=destr&c
end if
end if
else
if c="+" then
deStr=deStr&" "
else
deStr=deStr&c
end if
end if
next
URLDecode=deStr
end function

function isvalidhex(str)
isvalidhex=true
str=ucase(str)
if len(str)<>3 then isvalidhex=false:exit function
if left(str,1)<>"%" then isvalidhex=false:exit function
c=mid(str,2,1)
if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
c=mid(str,3,1)
if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
end function


%>

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧