.net使用cookie產生亂碼的問題

來源:互聯網
上載者:User
這個是我實際遇到的問題

在本地測試的時候是好好的,結果發布到iis上,讀取出來的cookie成了亂碼

一開始使用了一個非常傻的方式,就是把含有中文的cookie放到最後在存入,這個至少解決了一個問題,即不含有中文的cookie能夠正常讀取,可能是中文的亂碼導致了cookie的位元組讀亂了

後來改進了,尋找了網上的方法,也給你們粘貼上來,供大家參考

為了防止這篇文章刪掉,我給粘下來了。

下面是寫入cookie的代碼

[csharp] view plain copy

HttpCookie cookie = new HttpCookie("username");

cookie.Value = "張三,14,images/1.jpg";

cookie.Expires = DateTime.Now.AddDays(1);

Response.Cookies.Add(cookie);

下面是讀取cookie的代碼

[csharp] view plain copy

if (Request.Cookies["username"]!=null)

{

string username = Request.Cookies["username"].Value;

Response.Write(username);

}

有時讀取出來的cookie值中的中文部分可能是亂碼,不管是有什麼導致的,我們都可以通過編碼進行解決

更改上面寫入cookie的代碼

[csharp] view plain copy

HttpCookie cookie = new HttpCookie("username");

cookie.Value = HttpUtility.UrlEncode("張三,14,images/1.jpg",Encoding.GetEncoding("UTF=8"));

cookie.Expires = DateTime.Now.AddDays(1);

Response.Cookies.Add(cookie);

更改上面讀取cookie的代碼

[csharp] view plain copy

if (Request.Cookies["username"]!=null)

{

string username =HttpUtility.UrlDecode(Request.Cookies["username"].Value,Encoding.GetEncoding("UTF-8"));

Response.Write(username);

}

想這樣,在儲存和讀取cookie的時候都使用utf8的方式,就不會再出現亂碼了,不管是在伺服器還是本地都行,試過了

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.