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

Javascript
jQuery在IE中解释XML要注意的问题
JavaScript学习笔记:创建对象和构造类
JS学习笔记:Javascript类的继承
Javascript学习笔记:错误处理
JS学习笔记:防止发生命名冲突
怎么让网页全屏显示?
JS教程:addDOMLoadEvent事件
MooTools教程(告诉你为什么学Mootools)
选择mootools的5个原因
js教程:JavaScript作用域(Scope)
JS教程:日期格式转换函数
JavaScript中的Function对象
JS教程:理解JavaScript闭包
window.location.href出问题分析思路
JS教程:javascript获取页面属性
Webjx收集jQurey模式窗口的网页设计实例
现代网页设计时尚:网页中对话框窗口
概念网站实例:所有网页都在一个网页里
JS教程:鼠标悬停文字上显示图片
网页内容切换效果实现的15个jQuery插件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 295 ::
收藏到网摘: 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。