0

我发现如果我通过 JS 函数保存 cookie,如下所示:(w3c 学校示例)

    function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()+"; path=/project/");
document.cookie = c_name + "=" + c_value;
}

我使用 setCookie("hello","你好",30) 来保存 cookie 并使用 php 代码来回显它:

<?php
echo $_COOKIE['hello'];
?>

它将输出“%u4F60%u597D”。不是“你好”。</p>

所以我在 setCookie 函数中交换编码方式,如下所示:

function encode_setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
//use encodeURIComponent encode string and decodeURIComponent decode it.
var c_value=encodeURIComponent(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()+"; path=/project/");
document.cookie = c_name + "=" + c_value;
}

并再次使用 php echo 。它会输出“你好”,因为我想从 cookie 中读取。

我尝试通过 PHP 代码保存 cookie 并通过 JS 读取它。它也很好用。

或者 encodeURIComponent/decodeURIComponent 足以在 PHP 和 JS 中保存和读取 cookie。

这是关于保存在 cookie 中的字符串不是英文的问题,谢谢。

有更多更好的解决方案吗?

我找到了解决方案。

jQuery 饼干

4

1 回答 1

1

这是一个编码问题。阅读此页面以了解 unicode: http ://www.joelonsoftware.com/articles/Unicode.html

于 2012-07-26T10:54:07.487 回答