客户端Cookie中文编程(下)

cookie|编程|客户端|中文

   例如你要写入的Cookie内容是"一顶abc",经过CodeCookie变为"99a98a97a-31029a26432a"(基于安全考虑,将字符串反转),再经过escape编码后变为"99a98a97a%2D31029a26432a"(escape编码将除字母和数字以外的字符转换为十六进制%XX的形式),注意分隔符不能选%,D和数字。当然,如果有类似密码的重要信息,还需要在加密上再强化一下。因为写入Cookie的一般都是短信息,编码后增加的一些字节可忽略不计。下面的JavaScript读写Cookie函数中就加入了以上的中文支持。

function SetCookie(name,value,expires)
{
 var exp=new Date();
 exp.setTime(exp.getTime()+expires*60*1000);
 document.cookie=name+"="+escape(CodeCookie(value))+" ; expires="+exp.toGMTString()+" ; path=/";
}

function GetCookie (name)
{
 var strArg=name+"=";
 var nArgLen=strArg.length;
 var nCookieLen=document.cookie.length;
 var nEnd;
 var i=0;
 var j;

while (i$#@60;nCookieLen)
{
 j=i+nArgLen;
 if (document.cookie.substring(i,j)==strArg)
{
 nEnd=document.cookie.indexOf (";",j);
 if (nEnd==-1) nEnd=document.cookie.length;
 return DecodeCookie(unescape(document.cookie.substring(j,nEnd)));
}
 i=document.cookie.indexOf(" ",i)+1;
 if (i==0) break;
}
 return null;
}

  如果用CGI程序写入中文Cookie,客户端读取。如在ASP里,可以先使用前述的编码函数后,再用response写入,例如:response.cookies("Name")=CodeCookie("张三")至此,中文Cookie的问题基本解决。

时间: 2024-08-04 04:43:43

客户端Cookie中文编程(下)的相关文章

客户端Cookie中文编程(上)

cookie|编程|客户端|中文 客户端Cookie中文编程(转自yesky.com) Cookie的使用中,我们发现这样一个问题:如果写入Cookie的内容是中文(如用户称呼),用服务器端程序(如ASP或PHP)读出完全正确,但是用一般的JavaScript或VBScript的读Cookie函数取出的却是一堆乱码.这是一个棘手的问题,因为在有些情况下,Cookie的内容需要在客户机端用脚本语言读取.如果你写入了中文,得到了一堆乱码,是不是感觉很别扭呢?解决这个问题,还要从Cookie的存取方式

客户端Cookie中文编程

cookie|编程|客户端|中文 在Cookie的使用中,我们发现这样一个问题:如果写入Cookie的内容是中文(如用户称呼),用服务器端程序(如ASP 或PHP)读出完全正确,但是用一般的JavaScript或VBScript的读Cookie函数取出的却是一堆乱码.这是一个棘手的问题, 因为在有些情况下,Cookie的内容需要在客户机端用脚本语言读取.如果你写入了中文,得到了一堆乱码,是不是感觉很 别扭呢?解决这个问题,还要从Cookie的存取方式说起. 我们知道,写入Cookie内容前需要进

让你不苦恼:Java的中文编程配置心得

编程|心得|中文 Java的中文编程与配置心得 Java的中文问题历史悠久,连绵不绝,至今也没有完全解决,但是上有政策下有对策,我们总是有办法搞定它的.跟Java相关的中文问题主要有两类,一类是编程的问题,涉及到I/O,内码转换等.第二类是Java运行环境的配置,涉及字体,属性配置等.我刚刚用了一天的时间解决这些问题,觉得很有必要给自己写个备忘录之类的. 我看还是从问题入手吧,这样不致于让大家打瞌睡.我想写个程序,这个程序有个基本功能就是显示文件内容,我用JTextArea来做显示的事情,程序简

C++ POCO库中文编程参考指南(8) 丰富的Socket编程

1 POCO 中的 Socket POCO 中有 丰富的 Socket 封装.其继承关系如下: 本文暂且只介绍 StreamSocket.ServerSocket.DatagramSocket 2 Poco::Net::ServerSocket ServerSocket 是一个封装层次比较低(low level)的 Socket,其使用的是 TCP 连接.在实际的 Server 中推荐使用 TCPServer 或 Reactor 框架.下面是例程: #include "Poco/Net/Serv

中文环境下PostgreSQL的使用

虽然官方文档有提到编码的问题,但是对于中文讲的比较简单,给中文的PostgreSQL用户带来很多困扰,本文简单简述一下中文环境下PostgreSQL如何正确设置编码. 一.服务器端的编码设置 PostgreSQL在服务器端只支持两种简体中文编码: EUC_CN和UTF-8,而由于windows不支持EUC所以,在windows环境底下只能选UTF-8. 1. 安装时的编码设置 1.1 Linux下的中文编码设置 设置为EUC_CN[localhost ~]$ initdb -E EUC_CN -

中国人不能写一个真正的中文编程软件吗?

问题描述 汉语更适合编程,同样的命令用中文就可以减小程序体积,以if(textBox1.Text=="123"&&textBox2.Text=="456")MessageBox.Show("登陆成功");为例是80多个字节,而用中文就可以写如果编辑框1.内容=="123"并且编辑框2.内容=="456"消息框.内容("登陆成功")不到80,要比易语言要小的多了!比C#更适

POCO库中文编程参考指南(8)丰富的Socket编程

POCO库中文编程参考指南(8)丰富的Socket编程 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> @) 日期:April 16th, 2012 1 POCO 中的 Socket POCO 中有 丰富的 Socket 封装.其继承关系如下: 本文暂且只介绍 StreamSocket.ServerSocket.DatagramSocket 2 Poco::Net::ServerSocket S

scheme中文编程

   受javaeye上的<Ruby中文编程>启发,帖子中有人提到如果if这样的关键字都可以定义成中文,那就是真正的中文编程.那时我就想到,这个其实要在scheme中实现是多么简单,将sicp书中的解释器稍微修改下就可以了,只要修改解析的部分即可.解释器的完整代码放后面,我们先看看有趣的例子: (定义 你 '男)(当 ((是 你 '男) (打印 '男人是泥土做的))     ((是 你 '女) (打印 '女人是水做的))     (否则          (打印 '妖怪啊)))     其实呢

nginx负载均衡之基于客户端cookie的会话保持

通过ip_hash做会话保持有一定的缺陷,这个是通过客户端ip来实现.同一个网络下众多客户端访问服务器会被扔到同一台机器,再或者是CDN也会导致负载不均衡.所以要实现通过客户端cookie实现,包括F5.深信服设备其中的会话保持也是通过插入cookie值来实现会话保持.下次客户端访问服务器,带上本地cookie,nginx中的sticky模块分析并扔到对应服务器中. 软件版本: nginx-1.6.0 (后来用nginx-1.2.3) nginx-sticky-module-1.1 安装: [r