I’ve been having some issues with storing Unicode characters in cookies today. Whenever a cookie is set and the value filled with Unicode characters, the same characters cannot be retrieved from the cookie again. When they are retrieved from the requesting browser, they are changed into something totally unreadable.
Background
The cookie is set when a visitor enters some text into a textbox and submits the form. When the same visitor returns to that page I wanted to pre-fill the textbox with the value submitted earlier. Very easy and simple and not before someone noticed the strange behaviour with Unicode characters I thought it worked just fine.
Because the value was displayed in a textbox I thought that maybe HTML encoding could solve the issue. Don’t ever HTML encode a cookie in ASP.NET! It results in a yellow screen of death and an exception stating that the cookie contains dangerous characters. The dangerous character it was referring to was a HTML encoded representation of a Unicode character and looked something like this "#248;". The only thing to do is to delete your cookies in order to view that page again.
The solution
It took me a while to figure it out, but all you need to do is to URL encode the cookie value. It works no matter what encoding you use for the page. The example below illustrates the very simple solution:
private void SetCookie()
{
HttpCookie cookie = new HttpCookie("cookiename");
cookie.Expires = DateTime.Now.AddMonths(24);
cookie.Values.Add("name", Server.UrlEncode(txtName.Text));
Response.Cookies.Add(cookie);
}
private void GetCookie()
{
HttpCookie cookie = Request.Cookies["cookiename"];
if (cookie != null)
{
txtName.Text = Server.UrlDecode(cookie.Values["name"]);
}
}
It is so simple but caused me a lot of time investigating and clearing cookies from the browser.
相关推荐
### cookies_guidance:详解《隐私与电子通信法规》下的Cookie安全与使用规范 #### 引言:理解Cookies在法律框架下的角色 Cookies是现代互联网服务不可或缺的一部分,它们以小型文本文件的形式存储在用户设备上,...
标题中的"export cookies&&all cookies For firefox3.0"指的是针对Firefox 3.0浏览器的扩展,用于导出和管理用户的cookies数据。这个过程对于理解网络浏览行为、数据隐私以及测试自动化等方面非常重要。 首先,我们...
**IECookies查看器详解** IECookies查看器是一款专为用户设计的工具,旨在帮助用户查看并管理Internet Explorer(简称IE)浏览器的Cookies。Cookies是网站在用户计算机上存储的小型文本文件,用于记录用户偏好、...
在现代Web开发中,前端Cookies是用于存储用户信息和跟踪会话的重要工具。"前端cookies安全视频"聚焦于如何安全地使用这些小型文本文件,确保Web应用程序的数据安全性和用户隐私。以下是对视频内容的详细解释: 一、...
若需要存储 Unicode 字符或二进制数据,需进行 UTF-8、GBK 或 BASE64 等编码处理;无法直接存储 Java 对象。 - **适用性**:适合存储简单且非敏感的信息。 **2. Session** - **特点**:Session 由服务器管理,可以...
Cookies 总结 Cookies 是一种小文本文件,存储在用户的计算机上,用于记录用户在 Web 应用程序中的行为和偏好。下面是对 Cookies 的总结: 一、Cookies 的概念 Cookies 是一种小文本文件,存储在用户的计算机上,...
本文将深入探讨POST应用中的COOKIES管理,特别是如何在多线程环境中处理多个COOKIES,同时以易语言作为编程语言进行讲解。 首先,COOKIES是一种在客户端和服务器之间传递状态信息的技术。当用户访问一个网站时,...
- 当COOKIES_ENABLED设置为False(或者未做任何设置,默认情况)时,Scrapy不会开启cookies功能,也就是说不会在请求中携带任何cookies。 - 当COOKIES_ENABLED设置为True时,Scrapy会禁用默认的cookie策略,并使用...
在ASP.NET中,Session和Cookies是两种常见的用户状态管理机制,它们用来跟踪用户在网站上的行为和信息。本文将深入探讨这两个概念以及相关的知识点。 首先,让我们了解什么是Session。Session是一种服务器端的状态...
在IT行业中,尤其是在Web开发领域,Cookies是一种广泛使用的机制,用于在客户端(用户浏览器)和服务器之间存储和传输状态信息。C++虽然不是通常用来处理Web交互的主要编程语言,但通过一些库和方法,确实可以实现...
类还包含了删除Cookies的功能,这通常意味着设置一个过期时间在过去的新Cookies,使浏览器自动清除它。类的`deleteCookie()`方法可能用于实现这一点。 5. **设置前缀**: 在处理多个应用程序或不同功能的Cookies...
网页的Cookies是小型文本文件,由网站服务器存储在用户的计算机或移动设备上,用于记录用户在网站上的行为和偏好。这些信息有助于网站提供个性化的体验,例如保存登录状态、购物车内容或者页面设置等。然而,由于...
【支付宝获取cookies工具】 在互联网安全领域,"支付宝获取cookies工具"是一个涉及到用户登录状态管理和安全的话题。Cookies是网站为了辨别用户身份、保存用户信息而储存在用户浏览器上的小文本文件。在支付宝这样...
标题中的“cookies浏览器”指的是一个专门用于处理和管理Cookies的工具或者浏览器插件。这个工具可能允许用户查看、编辑、添加或删除与特定网站相关的Cookies,以进行各种测试或调试目的。在Web开发和安全领域,这样...
在易语言中,"取COOKIES目录"这个功能通常是指获取浏览器保存的Cookies数据的存储路径,这对于网络编程,尤其是涉及到用户登录状态维持、个性化设置记录等场景十分重要。 Cookies是Web服务器发送到用户浏览器并存储...
C#结合Cookies是一种常见的实现方式,它能有效地防止客户端的重复操作。本篇将详细解析如何利用C#和Cookies来实现这一功能。 首先,我们来看标题中的核心概念:C#防止重复操作和C#+Cookies防止重复操作。在C#的Web...
标题"cookiesjs让使用javascript超级简单得操作cookies在前端"和描述"cookies.js - 让使用javascript超级简单得操作cookies在前端"都指向一个名为`cookies.js`的库,这是一个专为前端JavaScript开发设计的库,旨在...
【Cookies浏览器】是一种专门针对网站cookies管理的工具,它允许用户提取、修改和屏蔽不同网站的cookies。在互联网世界中,cookies是服务器存储在用户本地的一种小型文本文件,用于记录用户的浏览历史、登录状态、...