最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to store other languages (unicode) in cookies and get it back again - Stack Overflow

programmeradmin1浏览0评论

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:

   function 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.

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:

   function 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.

Share Improve this question asked Feb 4, 2011 at 18:34 ZigglzworthZigglzworth 6,8139 gold badges70 silver badges110 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 19

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;
}
发布评论

评论列表(0)

  1. 暂无评论