How to store other languages (unicode) in cookies and get it back again
Can anyone help me understand how to store a cookie value that is in another language and than how to retrieve it again in that language.
I seem to have my foreign language cookies turn to garbage when retrieved after being stored.
Some code:
Write cookie code:
functi开发者_StackOverflowon writecook() {
document.cookie = "lboxcook=" + document.getElementsByTagName('input')[0].value;
//input[0] is the input box who's value is stored
}
Retrieve Cookie code:
<script language="JavaScript">
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
</script>
Thanks.
Use encodeURIComponent()
when setting the cookie and decodeURIComponent()
when retrieving it.
var cookieValue = document.getElementsByTagName('input')[0].value;
document.cookie = "lboxcook=" + encodeURIComponent(cookieValue);
function get_cookie(cookie_name) {
var results = document.cookie.match ('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
return results ? decodeURIComponent(results[2]) : null;
}
精彩评论