JavaScript读取中文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。