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