保存cookie数据,字符串语言不是英语

Save cookie data,string language not in English

本文关键字:英语 语言 字符串 cookie 数据 保存      更新时间:2024-03-27

我发现如果我通过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("你好"你好",30)保存cookie并使用php代码对其进行响应:

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

它将输出"%u4F60%u597D"。不是"你好".

所以我在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 cookie

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