Asp.net Cookie Türkçe karakter sorunu

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.

alattin alattin (16984)
10 yıl önce sordu

    Toplam 1 Cevap


    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.

     

    alattin alattin (16984)
    10 yıl önce cevaplandı

      üyelik gerektirir

      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