Как сохранить другие языки (юникод) в куки и вернуть их снова - PullRequest
4 голосов
/ 04 февраля 2011

Может ли кто-нибудь помочь мне понять, как сохранить значение cookie на другом языке, а затем как восстановить его на этом языке.

Кажется, что мои cookie на иностранных языках превращаются в мусор при извлечении после хранения.

Некоторый код:

Введите код cookie:

   function writecook() {
            document.cookie = "lboxcook=" + document.getElementsByTagName('input')[0].value;
            //input[0] is the input box who's value is stored
   }

Получить код Cookie:

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

Спасибо.

1 Ответ

17 голосов
/ 05 февраля 2011

Используйте encodeURIComponent() при настройке cookie и decodeURIComponent() при его получении.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...