JS가 PHP에 설정된 중국어 쿠키를 읽을 때 문자가 왜곡되는 해결 방법: 1. 먼저 이스케이프 함수를 사용하여 PHP로 인코딩하고 클라이언트에 도달할 때 js에서 이스케이프 해제 디코딩을 사용합니다. 2. [setrawcookie()] 함수를 사용하여 교체합니다. 쿠키 값.
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.php
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()
rrreee
PHP 프로그래밍 초보자부터 마스터까지🎜🎜🎜PHP5에서는
관련 학습 권장 사항:setrawcookie()
를 사용할 수 있습니다. 함수 대신 쿠키 값 설정 시 인코딩되지 않으므로 쿠키 설정 시 이스케이프 기능으로 인코딩할 필요가 없습니다. 이때 JS는 쿠키 값을 직접 읽을 수도 있습니다
위 내용은 JS가 PHP에 설정된 중국어 쿠키를 읽을 때 잘못된 문자가 나타나면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!