>  기사  >  백엔드 개발  >  JS가 PHP에 설정된 중국어 쿠키를 읽을 때 잘못된 문자가 나타나면 어떻게 해야 합니까?

JS가 PHP에 설정된 중국어 쿠키를 읽을 때 잘못된 문자가 나타나면 어떻게 해야 합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-29 15:29:262423검색

JS가 PHP에 설정된 중국어 쿠키를 읽을 때 문자가 왜곡되는 해결 방법: 1. 먼저 이스케이프 함수를 사용하여 PHP로 인코딩하고 클라이언트에 도달할 때 js에서 이스케이프 해제 디코딩을 사용합니다. 2. [setrawcookie()] 함수를 사용하여 교체합니다. 쿠키 값.

JS가 PHP에 설정된 중국어 쿠키를 읽을 때 잘못된 문자가 나타나면 어떻게 해야 합니까?

JS가 PHP에 설정된 중국어 쿠키를 읽을 때 문자가 왜곡되는 솔루션:

먼저 PHP에서 인코딩하려면 이스케이프 기능을 사용하고, 클라이언트에 도달하면 js에서 언스케이프 디코딩을 사용하세요.

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.phptest.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()rrreee

또 다른 방법이 있습니다:

PHP5에서는 setrawcookie()를 사용할 수 있습니다. 함수 대신 쿠키 값 설정 시 인코딩되지 않으므로 쿠키 설정 시 이스케이프 기능으로 인코딩할 필요가 없습니다. 이때 JS는 쿠키 값을 직접 읽을 수도 있습니다

관련 학습 권장 사항:
PHP 프로그래밍 초보자부터 마스터까지🎜🎜🎜

위 내용은 JS가 PHP에 설정된 중국어 쿠키를 읽을 때 잘못된 문자가 나타나면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.