当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript读取中文cookie时的乱码问题的解决方法

Javascript
[IE&FireFox兼容]JS对select操作
JS实现全景图效果360度旋转
Unicode 编码转换器
如何用javascript判断录入的日期是否合法
图片从右至左滚动JS
JS控件autocomplete 0.11演示及下载 1月5日已更新
一个对于js this关键字的问题
Javascript标准DOM Range操作全集
兼容Mozilla必须知道的知识。
你所要知道JS(DHTML)中的一些技巧
JS效率个人经验谈(8-15更新),加入range技巧
如何让动态插入的javascript脚本代码跑起来。
Javascript调试工具(下载)
脚本中出现 window.open() access is denied - 拒绝访问 情况一则及分析
Javascript-Mozilla和IE中的一个函数直接量的问题
贴一个在Mozilla中常用的Javascript代码
Javascript miscellanea -display data real time, using window.status
js技巧--转义符"\"的妙用
In Javascript Class, how to call the prototype method.(three method)
Javascript与vbscript数据共享

Javascript 中的 JavaScript读取中文cookie时的乱码问题的解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 184 ::
收藏到网摘: n/a

读取中文cookie时出现乱码,下面是具体的解决方法,大家以后使用过程中,尽量不要用中文。

复制代码 代码如下:

function Get_Cookie(name) {
var start = document.cookie.indexOf(name+…=…);
var len = start+name.length+1;
if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(…;…,len);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(len,end));
}
function Set_Cookie(name,value,expires,path,domain,secure) {
expires = expires * 60*60*24*1000;
var today = new Date();
var expires_date = new Date( today.getTime() + (expires) );
var cookieString = name + …=… +escape(value) +
( (expires) ? …;expires=… + expires_date.toGMTString() : ……) +
( (path) ? …;path=… + path : ……) +
( (domain) ? …;domain=… + domain : ……) +
( (secure) ? …;secure… : ……);
document.cookie = cookieString;
}

当cookies中保存有中文信息时,会发生乱码,这样修改下就会解决问题
复制代码 代码如下:

//cookie操作函数
function Get_Cookie(name) {
var start = document.cookie.indexOf(name+…=…);
var len = start+name.length+1;
if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(…;…,len);
if (end == -1) end = document.cookie.length;
return decodeURI(document.cookie.substring(len,end));
}
function Set_Cookie(name,value,expires,path,domain,secure) {
expires = expires * 60*60*24*1000;
var today = new Date();
var expires_date = new Date( today.getTime() + (expires) );
var cookieString = name + …=… +escape(value) +
( (expires) ? …;expires=… + expires_date.toGMTString() : ……) +
( (path) ? …;path=… + path : ……) +
( (domain) ? …;domain=… + domain : ……) +
( (secure) ? …;secure… : ……);
document.cookie = cookieString;
}

主要是把unescape改成了decodeURI。