我发现如果我通过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中的字符串保存不是英文问题谢谢。
有更好的解决方案吗?
我找到了解决方案。