Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
504 views
in Technique[技术] by (71.8m points)

javascript - 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:

   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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...