ホームページ  >  記事  >  php教程  >  Javascript を使用して、PHP で設定された中国語 COOKIE を読み取ります

Javascript を使用して、PHP で設定された中国語 COOKIE を読み取ります

WBOY
WBOYオリジナル
2016-06-16 09:16:25839ブラウズ

Agni Website Building Academy (Bkjia.Com) PHP チュートリアル PHP プログラムで COOKIE に中国語データを書き込んでいるのですが、JavaScript で読み込むと読み込まれてしまい、正しく表示できないのですが?多くの友人がこの状況に遭遇したと思います。私は一昨日検索して解決策を見つけました。PHP は COOKIE を UTF-8 エンコードで書き込み、JavaScript は内部で COOKIE を使用するため、それを読み出すときにデコードするだけです。

以下は引用内容です:
/**
*
* URL エンコード / デコード
*
**/

var URL = {

// URL エンコード用のパブリック メソッド
encode : function (string) {
returnscape(this._utf8_encode(string));
},

// URL デコード用のパブリック メソッド
decode : function (string) {
return this._utf8_decode(unescape(string));
},

// UTF-8 エンコード用のプライベート メソッド
_utf8_encode : function (string) {
string = string.replace(/rn/g,"n");
var utftext = "";

for (var n = 0; n

var c = string.charCodeAt(n);

if (c utftext += String.fromCharCode(c);
}
else if((c > 127) && (c utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode((c >> 6) & 63);
utftext += String.fromCharCode((c & 63) | 128);
}

}

return utftext;
},

// UTF-8 デコード用のプライベート メソッド
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0 ;

while ( i < utftext.length ) {

c = utftext.charCodeAt(i);

if (c 191) && (c }
else if((c > 191) && (c c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2; string += String .fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}

}

文字列を返します;
}

}

/**
* このセクションは Cookie を読むためのセクションです
*/
function GetCookie(sName)
{
var mycookie = document.cookie.split("; ");
for (var i = 0; i < mycookie.length; i++)
{
var cookie1 = mycookie[i].split("=");
if (cookie1[0] == sName)
{
return Url.decode(cookie1[1]);
}
}
return null;
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。