C#中Cookie的Value不能够使用逗号”,”的问题,解决

作者: Nishizhen 分类: C#相关 发布时间: 2010-01-25 16:34 ė 6没有评论

今天做东西,遇到这样一个问题:

在C#中给Cookies的Value逗号的话,就会报错,然后在msdn上找到问题的答案,不允许使用逗号。

http://msdn.microsoft.com/zh-cn/library/kesbe27x(VS.95).aspx

C#
public Cookie(
string name,
string value
)
参数
name
类型:System.String
Cookie 的名称。name 参数不能包含下列字符:等号 (=)、分号 (;)、逗号 (,)、换行符 (\n)、回车符 (\r)、制表符 (\t) 和空格字符。美元符号 ($) 不能作为第一个字符。
value
类型:System.String
Cookie 的值。value 参数不能包含分号 (;) 或逗号 (,),除非它们包含在转义的双引号中。
异常
异常 条件
CookieException
name 为 null 引用(在 Visual Basic 中为 Nothing) 或空字符串 (“”)。- 或 –

name 包含未经授权的字符。使用以下字符之一将会导致异常:

等号 (=)

分号 (;)

逗号 (,)

换行符 (\n)

回车符 (\r)

制表符 (\t)

空格字符

美元符号 ($) 作为第一个字符

– 或 –

value 为 null 引用(在 Visual Basic 中为 Nothing),或者包含分号 (;) 或逗号 (,),而它们不包含在转义的双引号中。

备注

逗号字符保留用作同一行上各个 Cookie 之间的分隔符。下面的示例演示如何在 value 中使用逗号。

System.Net.Cookie cookie = new System.Net.Cookie(“cookieID”, “\”123,456\””);

System.Net.Cookie cookie = new System.Net.Cookie(“cookieID”, “\”123,456\””);

这个是可以了,但是那我真正的Value值里面就有一个逗号,而没有被双引号包围的怎么办,像下面这个?
System.Net.Cookie cookie = new System.Net.Cookie(“cookieID”, “,\”123,456\””);

在CSDN上面提问有大家的回答,但是没找到什么有用的内容,都是不相关的。。。

后来多亏游戏狐狸大棍子,搞出来了,嘎嘎

其实”,”可以用%2C代替,就是URLEncode,不是大家所说的Base64。

本文出自 逆时针's Place,转载时请注明出处及相应链接。

本文永久链接: http://www.nishizhen.cn/c%e4%b8%adcookie%e7%9a%84value%e4%b8%8d%e8%83%bd%e5%a4%9f%e4%bd%bf%e7%94%a8%e9%80%97%e5%8f%b7%e7%9a%84%e9%97%ae%e9%a2%98%ef%bc%8c%e8%a7%a3%e5%86%b3/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

验证码 * Time limit is exhausted. Please reload CAPTCHA.

Ɣ回顶部