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

时间:2012-07-26 09:38:41

标签: php javascript

我发现如果我通过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”。不是“你好”。

所以我在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再次回复它。 它将输出“你好”,因为我想从cookie中读取。

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

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

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

有更好的解决方案吗?

我找到了解决方案。

jQuery cookie

1 个答案:

答案 0 :(得分:1)

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