首页 >后端开发 >PHP问题 > 正文

JS读取PHP中设置的中文cookie时出现乱码怎么办

原创2020-07-29 15:29:2601217

JS读取PHP中设置的中文cookie时出现乱码的解决方法:1、在PHP中先用escape函数编码,到客户端时利用js中的unescape解码;2、使用【setrawcookie()】函数来代替cookie值。

JS读取PHP中设置的中文cookie时出现乱码的解决方法:

在PHP中先用escape函数编码,到客户端时利用js中的unescape解码。

escape函数如下:

function escape($str)  
{      
       preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);      
       $ar    =    $r[0];   
        foreach($ar   as   $k=>$v)       
        {            
           if(ord($v[0]) < 128)  
               $ar[$k] = rawurlencode($v);
            else    
               $ar[$k]    =    "%u".bin2hex(iconv("GB2312","UCS-2",$v));   
       }   
       return    join("",$ar);   
}

例子:test.php

<?php
function    escape($str)    {   
   preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);   
   $ar    =    $r[0];   
   foreach($ar    as    $k=>$v)    {   
    if(ord($v[0])    <    128)   
     $ar[$k]    =    rawurlencode($v);   
    else   
     $ar[$k]    =    "%u".bin2hex(iconv("GB2312","UCS-2",$v));   
   }   
   return    join("",$ar);   
}
$name = escape("深圳人");
setcookie("name", $name);
?>
<scrīpt>
function get_cookie(name)
{
var result = null;
var myCookie = document.cookie + ";";
var searchName = name + "=";
var startOfCookie = myCookie.indexOf(searchName);
var endOfCookie;
if (startOfCookie != -1)
{
   startOfCookie += searchName.length;
   endOfCookie = myCookie.indexOf(";",startOfCookie);
   result = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
return result;
}
</scrīpt>
<scrīpt>
document.write("js:" + unescape(getCookie("name")));
</scrīpt>

另外还有一个方法:

在PHP5中,可以使用setrawcookie()函数来代替,它是在设置cookie值的时候没有编码的,所以在设置cookie的时候也不用先用escape函数编码,这时JS也能直接读取cookie的值

相关学习推荐:PHP编程从入门到精通

以上就是JS读取PHP中设置的中文cookie时出现乱码怎么办的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:JS PHP cookie乱码
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    coldplay.xixi

    好好学习 天天向上

    最近文章
    重点详解Java类和对象1404
    浅析php简单操作mysql锁机制3018
    php无法加载mysql怎么办1592
    推荐视频教程
  • PHP基本语法(玉女心经版)PHP基本语法(玉女心经版)
  • PHP字符串处理(玉女心经版)PHP字符串处理(玉女心经版)
  • PHP代码整洁之道PHP代码整洁之道
  • PHP进阶篇-函数(玉女心经版)PHP进阶篇-函数(玉女心经版)
  • 视频教程分类