0

asp.net mvc で国別文字を Cookie に保存し、JavaScript で表示したいのですが、この文を保存すると、「Příliš žluťouličký kůň úpěl úděsné tóny」となります。この塊「PĹ™Ăliš ĹľluĹĄouliÄŤkĂ˝ kĹŻĹ ĂşpÄ›l ĂşdÄ›snĂ© tĂłny.」を取り戻しました。私はセーブデータにこの構造を使用しています:

HttpContext.Current.Response.Cookies.Add(new HttpCookie(string.Format("Flash.{0}", notification), message) { Path = "/" });

そして、これは読むためのものです:

function setFlashMessageFromCookie() {
    $.each(new Array('Success', 'Error', 'Warning', 'Info'), function (i, alert) {
        var cookie = $.cookie("Flash." + alert);

        if (cookie) {
            options.message = cookie;
            options.alert = alert;

            deleteFlashMessageCookie(alert);
            return;
        }
    });
}

どうすればこの問題を解決できますか? みんなありがとう!

4

2 に答える 2

1

base64 または urlencoding でエンコードしてから、javascript 側でデコードします。

于 2013-03-04T20:12:43.953 に答える
0

asp.net では、System.Web.HttpUtility を探してデータをエンコードおよびデコードしてみてください。

HttpUtility.UrlEncode(data); // encoding
HttpUtility.UrlDecode(encodedData); // decoding

または試してください:

function setCookie(name,value)
{
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

function getCookie(Name) {
    if (document.cookie.length > 0){ 
        offset = document.cookie.indexOf(Name +"=");

        if (offset != -1) { // if cookie exists 
          begin += Name.length+1; 
          end = document.cookie.indexOf(";", offset); 

          if (end == -1) 
              end = document.cookie.length;

          return unescape(document.cookie.substring(begin, end))
          } 
    }
}
于 2013-03-04T20:44:11.927 に答える