昨天有客户投诉,说其购买的关键字: 钻石珠宝,diy
不能正常看到对应的广告位,查了下网站对应的广告投放记录是正常的。
最后确认是,searchweb在记录对应的用户最近搜索关键字cookie时,因为特殊字符违反了cookie的规范,导致最近搜索记录里没有用户上一
次搜索钻石珠宝,diy的记录。
对应javaapi中cookie规范描述:
Constructs a cookie with a specified name and value.
The name must conform to RFC 2109. That means it can contain only ASCII
alphanumeric characters and cannot contain commas, semicolons, or white
space or begin with a $ character. The cookie's name cannot be changed
after creation.
The value can be anything the server chooses to send. Its value is
probably of interest only to the server. The cookie's value can be
changed after creation with the setValue method.
By default, cookies are created according to the Netscape cookie
specification. The version can be changed with the setVersion method.
在firefox , ie , google chrome下测试验证了下, 发现对于 逗号(,) , 空格, 分号(;) ,$打头的字符
。cookie都无法正常写入, 需要实现进行编码encode处理。
分享到:
相关推荐
本文将深入探讨为什么不应在Cookie中使用特殊字符,特别是标题和描述中提到的逗号、分号、空格和美元符号,以及这些限制背后的原因。 首先,让我们理解RFC2109是什么。RFC2109是互联网工程任务组(IETF)发布的一份...
如果值中包含这些特殊字符或中文,可以使用`escape()`函数编码,取值时使用`unescape()`解码。例如: ```javascript document.cookie = "str=" + escape("I love ajax"); // 实际存储的值为:str=I%20love%20ajax `...
在Cookie的使用中,版本0的Cookie规定内容不能包含空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@符号、冒号和分号。而版本1(RFC 2109)放宽了这些限制,但为了兼容性,最好避免使用这些特殊字符。 ...
- **设置为 true**: 关闭自动编码解码功能,适用于不包含特殊字符的情况。 ```javascript $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', raw: true }); ``` #### 五、总结 通过 jQuery.cookie ...
- `escape()`:此方法用于对字符串进行URL编码,确保Cookie值中的特殊字符能安全地存储。在设置Cookie时,应对值进行`escape()`处理,避免包含URL中不允许的字符。 - `unescape()`:与`escape()`相反,用于解码URL...
由于cookie的值可能包含特殊字符,如空格、引号等,在设置cookie时,应该使用`escape()`函数进行编码,避免特殊字符引起的问题。在读取cookie后,应使用`unescape()`函数解码,恢复原始数据: ```javascript ...
由于Cookie可能包含特殊字符,所以在设置Cookie值时应对其进行编码。而在获取Cookie时需要对其进行解码。JavaScript提供了`encodeURIComponent()`和`decodeURIComponent()`函数用于编码和解码。 8. Cookie应用示例 ...
注意,设置Cookie的值时,如果有特殊字符,可能需要进行URL编码,如`URLEncoder.encode("王伟宗","UTF-8")`。在读取时,使用`URLDecoder.decode()`解码。 总结来说,Java中对Cookie的操作主要包括创建、设置属性、...
可以使用`encodeURIComponent`函数对键和值进行编码,防止特殊字符引起问题。例如:`'username=' + encodeURIComponent('JohnDoe')`。 3. 添加其他cookie属性,如过期时间(以毫秒为单位的Date对象)、路径(默认为...
在IT领域,尤其是在Web开发和自动化测试中,模拟多个用户登录和管理Cookie是常见的需求。C#结合CEFSharp库提供了一种解决方案,使得开发者能够创建一个具有浏览器功能的应用程序,并且能够处理多账户同时登录的问题...
这里推荐使用URL编码(URL Encoding),这是一种将特殊字符转换为可安全用于URL的ASCII格式的方法。在.NET环境中,我们可以使用`System.Web.HttpUtility.UrlEncode()`方法对中文字符串进行编码;在JavaScript中,...
此方法接收一个特殊字符`s`和一个字符串数组`arr`,将数组元素用`s`连接成一个单一的字符串。这个方法在将从Cookie中解析出的字符串重新拆分为数组时非常有用。 4. **getList方法**: 这个方法将使用特定字符`ch`...
- Cookie的名称和值不能包含特殊字符,如空格、@、:、;、?、,、"、/、[、]、(、)、=。 - 由于Cookie存储在客户端,故不适合存储敏感信息,因为它们可能被其他人查看。 - 浏览器通常限制每个站点的Cookie数量和...
在PHP开发中,有时我们需要从URL中获取参数,但遇到包含特殊字符如#时,可能会遇到问题。这是因为#在URL中被用作片段标识符,用于指示浏览器跳转到页面的特定位置,而不是作为参数传递。因此,当URL中包含#时,...
在JavaScript中,我们可以使用`document.cookie`这个特殊的属性来读取、设置和删除Cookie。但需要注意的是,`document.cookie`只支持字符串形式的操作,且有长度限制,一般不超过4KB。 **设置Cookie** 要创建一个新...
`getCookie`函数首先查找包含`c_name`的开始位置,然后提取出值并进行unescape解码,以便还原可能经过encodeURIComponent编码的特殊字符。 接下来是`setCookie`函数,用于设置新的Cookie或更新已存在的Cookie。它...
由于Cookie的值不能包含某些特殊字符(如分号、逗号、等号和空格),在存储可能包含这些字符的数据时,需要使用`escape()`函数进行编码。同样,读取Cookie后,应使用`unescape()`函数进行解码。 3. **Cookie属性**...
如果要存储的值中包含了上述特殊字符,则可以使用`escape()`函数进行编码: ```javascript document.cookie = "str=" + escape("I love ajax"); ``` 这将转化为: ```javascript document.cookie = "str=I%20love%20...
在.NET开发环境中,C#是一种常用的编程语言,用于构建各种应用程序,包括Web应用。本实例主要探讨的是如何在C#中处理Cookie,这对于保持用户状态、实现会话管理等场景非常关键。Cookie是服务器发送到客户端(浏览器...
### JavaScript操作Cookie知识点详解 #### 一、Cookie简介 ...- 使用JavaScript操作Cookie时要注意编码和解码,避免特殊字符导致的问题。 - 当处理大量的Cookie时,需要注意浏览器对单个站点Cookie数量和大小的限制。