Web geliştirme yaparken en sık karşılaşılan sorunlardan biri, Türkçe karakterlerin bozulmasıdır. Sayfanın HTML kısmı normal görünürken, veritabanından gelen veriler “ğ, ü, ş, ç” gibi karakterlerde sorun çıkarabilir. Özellikle Access ile çalışırken bu hatalar sıkça karşımıza çıkar. Örneğin, sayfanın charset’i utf-8 ayarlandığında veritabanından gelen içerik bozulabilir; windows-1254 yaptığınızda ise veritabanı düzelir ama bu kez sayfanın dili bozulur. Yani bir tarafı düzeltirken diğerini bozma riski vardır. Peki bu sorunu nasıl çözeceğiz
MySQL tarafında çözüm
Eğer MySQL kullanıyorsanız, charset ayarını doğru yapmak genellikle sorunu çözer. Bağlantı kurarken UTF-8 kullanmaya dikkat edin. MySQL’de tablo ve sütunların charset ayarları da önemlidir; aksi halde PHP veya ASP tarafında hangi ayarı yaparsanız yapın sorun devam edebilir.
Sayfa başında charset ayarlamak
ASP tarafında şu kodları sayfaya ekleyerek karakter setini doğrudan UTF-8 olarak belirleyebilirsiniz:
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8"Bu yöntem genellikle ilk denenecek çözümlerden biridir.
Web.config üzerinden ayar yapmak
Eğer ASP.NET ile çalışıyorsanız, Web.config dosyasında configuration altına aşağıdaki ayarı ekleyebilirsiniz:
<system.web>
<globalization culture="tr-TR" uiCulture="tr-TR" />
</system.web>Bu ayar, uygulamanın kültür ve dil tercihlerini Türkçe’ye göre düzenler.
Fonksiyon ile manuel dönüştürme
Bazı durumlarda yukarıdaki yöntemler işe yaramaz. Bu durumda bir dönüştürme fonksiyonu yazabilirsiniz. Örneğin, fonksiyonlar.asp adında bir dosya oluşturup içine Türkçe karakterlerin karşılıklarını düzelten bir fonksiyon (örneğin ork) koyabilirsiniz. Yazdığım bir fonksiyon örneğini burada bulabilirsiniz. Ardından veritabanından çektiğiniz içerikleri bu fonksiyondan geçirirsiniz:
Set yazi = Baglanti.Execute("Select * from Yazilar")
makale = yazi("icerik") <%= ork(makale) %>Bu yöntem pratik bir çözüm sağlar ve bozuk karakterleri manuel olarak düzeltir.
Sayfa başına codepage ve charset eklemek
Bir başka yöntem ise sayfa başına charset tanımlamaktır:
<%@ Language = VBScript CodePage=1254 %> <% Session.CodePage = 1254 Session.LCID = 1055 Response.Charset = "ISO-8859-9" Response.Charset = "Windows-1254" Response.ContentType = "text/HTML" %>Bu ayarlar sayesinde ASP sayfası Türkçe karakterleri doğru şekilde işleyebilir.



Yorum bırakın