目的:一静态页要在用户登录和没登录的不同状态显示不同信息. 实现方法肯定是用js了.写了一js取cookie 的方法getCookie(name) 通过” var u = getCookie(name); if (u) { x.innerHTML = u; } else { } 方法实现一些信息不同显示 x.innerHTML = u; 目的就是在一处显示u这个cookie得到的信息,问题就出在这里 这个cookie是通过php setcookie设置的,结果js取出的中文是乱码,页面为utf-8 想了几点不是方法,如url编码都不行,最好想到我用js取,那也用js设置cookie不就好了,最好写一js的setCookie 函数 代码大致如下 <?php setcookie();//一些其它cookie echo ‘<scrīpt>setCookie (’xxx’,’中文’)</scrīpt>’;//要js取的cookie ?> 最后解决方法很简单,但是一直没有想到,我想对大家有帮助吧 明天帖出js代码
function getCookieVal(offset) { var endstr = document.cookie.indexOf (“;”, offset); if(endstr == -1) { endstr = document.cookie.length; } return unescape(document.cookie.substring(offset, endstr)); } function getCookie(name) { var arg = name + “=”; var alen = arg.length; var clen = document.cookie.length; var i = 0; var j = 0; while(i < clen) { j = i + alen; if(document.cookie.substring(i, j) == arg) return getCookieVal(j); i = document.cookie.indexOf(“ ”, i) + 1; if(i == 0) break; } return null; } function deleteCookie(name) { var exp = new Date(); var cval = getCookie(name); exp.setTime(exp.getTime() - 1); document.cookie = name + “=” + cval + “; expires=” + exp.toGMTString(); } var gCookieExpDays = 80; function setCookie(name, value) { var argv = setCookie.arguments; var argc = setCookie.arguments.length; var exp = (argc > 2) ? argv[2] : gCookieExpDays; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; var expires = new Date(); deleteCookie(name); expires.setTime(expires.getTime() + (exp*24*60*60*1000)); document.cookie = name + “=” + value + “; expires=” + expires.toGMTString() + ((domain == null) ? “” : (“; domain=” + domain)) + ((path == null) ? “” : (“; path=” + path)) + ((secure == true) ? “; secure” : “”); } 当然,帝国的可以更简单的直接插入PHP代码
|