Web Uygulamalarında Encoding Problemi

Web Uygulamalarında Encoding Problemi

Yakın zaman içerisinde geliştirmekte olduğumuz bir web tabanlı uygulamada kimi zaman gözden kaçan, ufak bir sorunmuş gibi görünen ama aslında çok ciddi problemlere davetiye çıkarabilecek bir durumla tekrar karşılaştım. Encoding problemi…

Bir web sayfasını ister notepadd++ ister daha gelişkin bir IDE kullanarak hazırlayalım, kodlamayı yaparken bir encoding’e göre çalışırız ve dokümanı o encoding’de kaydederiz. Web sayfasının <head> bölümünde de işte web sayfamızda şu karakter setini kullanıyoruz diyebilmek ve tarayıcının görmesi için tanıtıcı bir meta cümleciği koyarız.


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

UTF-8 mi Windows-1254 Mü?

Bahsi geçen projede hazırlanan sayfalarda UTF-8 encoding’e göre oluşturulmuş ve meta cümleciği de UTF-8’i gösterecek şekilde XHTML dokümanın <head> bölümüne koyulmuştu. Local bilgisayarda uygulama çalıştırıldığında bir sorunla karşılaşılmazken, uygulama internet ortamına aktarıldığında ve Firefox ile siteyi kontrol ederken Windows-1254 karakter setinin tarayıcı tarafından seçili olduğunu gördüm. Web sayfasında karakterler doğru görünüyordu ama kullanmadığım bir encoding seçili durumdaydı.

Sayfa kaynak kodunu tarayıcı üzerinden açıp meta tanımlamaları arasında content=”text/html; charset=utf-8″ tanımlamasını doğru yapıp yapmadığımı kontrol ettim. Doğru görünüyordu. Sayfaların yanlışlıkla linkWindows-1254 olarak kaydedilmiş olduğunu düşünerek sunucudaki herhangi bir sayfayı bilgisayarıma indirdim ve tekrar UTF-8’e göre kayıt ettim. Sorun düzelmemişti ve anladığım kadarıyla zaten Windows-1254 ile kayıt etme gibi bir sorun da yoktu…

Sorun Sunucu Tarafında

Uygulamada ASP.NET teknolojisi kullanılmıştı. Sorunun client (kullanıcı) tarafla ilgili değil, server (sunucu) tarafında olabileceğini düşünmeye başladım. Ve bu noktada gördüm ki ASP.NET tarafında bir encoding tanımlaması girilmemiş. Uygulamanın web.config dosyası içinde system.web bölümü altına şu tanımlamayı girdim.

<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

Böylece ASP.NET teknolojisine, iletişim sağlarken lUTF-8 encoding’i kullanmasını söylemiş olduk. Bu tanımlamayı ASP.NET yazılımcı arkadaşımız gözden kaçırdığı için sorun yaşamaktaydık. ASP.NET sunucuda kodlara bir istek geldiğinde derleme yaparken host sunucunun bölgesel ayarlarındaki dil tanımlamasına göre bir derleme yapıyordu, bu da Windows-1254 encoding’ine göre iletişim sağladığını gösteriyordu.

Bu sorun benzer bir şekilde diğer sunucu taraflı çalışan programlama dillerinde de başımıza gelebilecek bir sorun. Bu yüzden kullanıcı tarafında, sunucu tarafında ve mutlaka kullandığımız veritabanında aynı encoding’i kullanarak, encoding  risklerini en aza indirmemiz en doğrusu olacaktır. Ne dersiniz?

Hemen Paylaş!
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Live
  • MySpace
  • LinkedIn
  • Technorati
  • Netvibes
  • FriendFeed
  • Reddit
  • Yahoo! Bookmarks

Fırından yeni çıkmış yazılardan haberdar olmak için RSS yayınıma abone olabilir ya da beni Twitter'dan takip edebilirsiniz.

Yorumla Bakalım

Yorumlara Git

Bir de Bunları Deneyin :)

Makale Detayı

Bu Makale için toplam 1 adet yorum bulunmaktadır...

Bu Makale 23 January, 2009 ve saat 19:35 itibariyle Sorunlar ve Çözümler kategorisi altına kaydedilmiştir. Bu makale ile ilgili yorumları RSS 2.0 beslemesinden takip edebilirsiniz.. Bu makale için yorum yapabilir, veya kendi web sitenize trackback sağlayabilirsiniz...

Web Uygulamalarında Encoding Problemi için toplam 1 yorum var...

  1. Wavatar joyologo Diyorki:

    Sevgili Özgür, çok faydalı bir makale olmuş. Bazen böyle basit bir sorunlar yüzünden saatlerce uğraşabiliyoruz. Değerli deneyimlerini paylaştığın için çok teşekkürler..

    1

Yorumla

Yorumunuzu ve katkılarınızı sabırsızlıkla bekliyoruz :)

Yukarıya Çık