Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn verstümmelte Zeichen erscheinen, wenn JS die in PHP gesetzten chinesischen Cookies liest?
Lösung für den verstümmelten Code, wenn JS das in PHP festgelegte chinesische Cookie liest: 1. Verwenden Sie zuerst die Escape-Funktion zum Codieren in PHP und verwenden Sie die Unescape-Decodierung in js, wenn Sie den Client erreichen. 2. Verwenden Sie [setrawcookie ( )]-Funktion zum Ersetzen des Cookie-Werts.
Lösung für den verstümmelten Code, wenn JS die in PHP gesetzten chinesischen Cookies liest:
In PHP zuerst verwenden Escape-Funktion zum Codieren und Unescape-Decodierung in js verwenden, wenn der Client erreicht wird.
Escape-Funktion lautet wie folgt:
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); }
Beispiel: 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>
Es gibt auch eine andere Methode:
In PHP5 können Sie Die Funktion wird beim Festlegen des Cookie-Werts nicht codiert, daher ist es nicht erforderlich, sie beim Setzen des Cookies mit der Escape-Funktion zu codieren. Zu diesem Zeitpunkt kann JS den Cookie-Wert auch direkt lesen setrawcookie()
Verwandte Lernempfehlungen:
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn verstümmelte Zeichen erscheinen, wenn JS die in PHP gesetzten chinesischen Cookies liest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!