0
Asp.net ile cookie, çerez oluşturduğunuzda, cookie içerisinde Türkçe karakter veya Unicode karakter saklıyorsanız, cookie içerisindeki verilere eriştiğinizde Türkçe karakterlerde bozulma olduğunu fark edeceksiniz.
Örneğin aşağıdaki gibi bir kodda;
HttpCookie cookie = new HttpCookie("KurabiyeAd"); cookie.Expires = DateTime.Now.AddMonths(24); cookie.Values.Add("Ad", "Alattin Çakır"); Response.Cookies.Add(cookie);
gibi Ad bilgisini okumak istediğinizde "Alattin Çakır" bozuk olarak görüntülenecektir.
Bu sorunu çözmek için aşağıdaki işlemleri yapmalısınız.
0
Asp.Net'te Türkçe karakter sorunsuz cookie oluşturmak için birden fazla yöntem var. UrlEncode -UrlDecode yöntemlerinden faydalanabilirsiniz veya web.config üzerinden bunu ayarlayabilirsiniz.
Asp.net cookie Türkçe karakter sorunu çözüm 1: web.config üzerinden
web.config üzerinde şu değişikliği yaparak karakter kodlaması ile ilgili satırları ekleyin.
Aşağıdaki satırı <system.web> ve </system.web> arasına eklemelisiniz.
<globalization uiCulture="tr" culture="tr-TR" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="windows-1254"/>
Asp.net cookie Türkçe karakter sorunu çözüm 2: UrlEncode-UrlDecode yöntemleri ile
Aşağıdaki çözümde hem asp.net ile cookie oluşturma, asp.net ile cookie okuma örneklerini bulacaksınız. Aynı zamanda cookie üzerinde oluşabilecek Türkçe karakter sorunları için de çözüm olacaktır.
private void CookieOlustur() { HttpCookie cookie = new HttpCookie("KurabiyeAd"); cookie.Expires = DateTime.Now.AddMonths(24); cookie.Values.Add("Ad", Server.UrlEncode("Alattin Çakır")); Response.Cookies.Add(cookie); }
Asp.net'te oluşturulan cookie'deki değeri okumak için;
private void CookieOku() { HttpCookie cookie = Request.Cookies["KurabiyeAd"]; if (cookie != null) { txtName.Text = Server.UrlDecode(cookie.Values["Ad"]); } }
Asp.net'te Server.UrlDecode metodu Türkçe karakter ile ilgili yaşanan soruna çözüm olacaktır.
Ayrıca Asp.Net'te UrlEncode ve HtmlEncode arasındaki fark nedir? ilginizi çekebilir.
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol