Aslında bu konuyla ilgili bir çok yazı bulabilirsiniz. Ama iletişimden bir kaç kere sorulduğu için genel olarak bir yazıda bazı türkçe karakter sorunlarını toplayım istedim. Daha önce “wordpress tema türkçeleştirmek” yazımda bundan biraz bahsetmiştim.
Öncelikle bir web sitesi hazırlanırken sitede kullanılacak dile göre karakter kümesi kodlanır. Bu kodlama web sitemizde kullanılacak karakterlerin tanınmasını sağlar. Eğer biraz HTML bilgisine sahipseniz META taglarını duymuşsunuzdur. İşte bu karakter kümesi meta tagları içinde tanımlanır. Aşağıdaki kod satırından herhangibirisi türkçe karakterli siteler için kullanılabilir.
<META http-equiv=content-type content=text/html;charset=iso-8859-9>
<META http-equiv=content-type content=text/html;charset=windows-1254>
Bir örnek gösterelim;
<html>
<head>
<title>Karakter Kodlaması Örneği</title> Title tarayıcımızın en üstünde mavi yerde çıkacak sayfa başlığıdır
<META http-equiv=content-type content=text/html;charset=iso-8859-9>
</head>
<body>
Burası sayfamızın görüntülendiği gövde kısmıdır.
</body>
</html>
Bu şekilde sayfamızın türkçe karakterlere uygun olmasını sağlamış olduk.
Şimdi biraz UTF-8 den bahsedelim.
UTF-8 : 8 bitlik bir Unicode karakter seti formatıdır. “Unicode Transformation Format”‘ın kısaltması olarak kullanılır. UTF kullanarak 1 milyondan fazla karakter kodlanılabilinmektedir.
Yani anlıcağımız yukarıdaki META etiketleri arasına tanımladığımız türkçe karakter kümeleri ( iso-8859-9 ,windows-1254 ) yerine evrensel bir karakter kümesi tanımlayabiliriz “UTF-8 “. O zaman meta tagları içindeki kodumuz değişecektir ve şöyle olacaktır;
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>
Bu şekilde sayfamızı kodladığımızda sayfamızdaki türkçe karakterler tarayıcılar tarafından düzgün yorumlanacaktır.
Bu kodlamaya karşı yinede , türkçe karakter sorunları yaşayabiliriz. Bu bazen sunucudan, bazen kullandığımız web sisteminin kodlanmasından veya sayfayı editlerken kullandığımız editörden kaynaklı olabilir. Böyle bir durumda türkçe karakterler, “?” veya absürt karakterler ile değiştirilir (yani yorumlanamaz). Bunun için yapmamız gereken türkçe karakterler yerine html deki karşılıkları yada ascii kodlamadaki karşılığını yazmak.
Türkçe Karakterler İçin HTML karşılığı;
Ü <=> Ãœ
Ş <=> ÅŸ
Ğ <=> ÄŸ
Ç <=> Ç
İ <=> Ä°
Ö <=> Ö
ü <=> ü
ş <=> ÅŸ
ğ <=> ÄŸ
ç <=> ç
ı <=> ı
ö <=> ö
Türkçe Karakterler İçin ASCII karşılığı;
ç ç
ı ı
ğ ğ
ö ö
ş ş
ü ü
Ç Ç
İ İ
Ğ Ð
Ö Ö
Ş Ş
Ü Ü
Sayfamızdaki absürt karakterlerleri bu şekilde kodlarsak sorun ortadan kalkacaktır. Ama eğerki 10 tane sayfamız varsa ve hepsinde aynı sorunu bu şekilde halletmek istiyorsak o zaman iş baya bir zahmetli hale gelir. Sayfalardaki tüm karakterleri tek tek değiştirmek baya bir zamanımızı ve sabrımızı alacaktır. Ama bununda pratik bir yolu var.
. Bunun için notepad++ gibi bir editörde CTRL+H kısa yolunu kullanıp , üstteki resimdeki yolu takip ederek istediğimiz karakterin karşılığını tüm sayfalarda değiştirebiliriz.
Bir başka söylenecek şeyse, wordpress kullanıyorsanız ve türkçeleştirme işlemini notpad++ gibi bir editörde yapıyorsanız türkçe karakter sorunu yaşayabilirsiniz. WordPress te türkçeleştirme işlemlerinizi Tasarım–>>Tema Editörü bölümünden yaparsanız bu sorunlarla karşılaşmazsınız.
Ama türkçeleştirme yapacağınız dosya tema editöründe yoksa , o zaman bu işlemi notepad++ gibi bir editörde yapmak kaçınılmaz olur. O zaman yapmamız gereken editörümüzdeki Düzenle–>>UTF-8 (bom olmadan) kodla seçeneğini seçmektir. Böylece editlediğimiz sayfa utf-8 kod dizisine göre kodlanacaktır.
Aynı menüde UTF-8 de kodla seçeneğide vardır. Burayı işaretlesekte aynı sonuca ulaşırız. Ama ne yazıkki bu seçenekte bazı sorunlara neden olmaktadır.
UTF-8 de kodla seçeneğini seçtiğimizde editörümüz ,bizim göremiceğimiz bir şekilde sayfanın başına  gibi bir kod ekler. Bu kod , sayfanın UTF-8 olduğunu vurgular ( Yani BOM denilen şey) ve tarayıcılarda hatalara neden olur. O yüzden bu kodu kaldırmak için BOM olmadan kodla seçeneğini seçmemiz en sağlıklı sonucu verecektir.
Umarım anlatmak istediklerimi anlatabilmişimdir. Herkese kolay gelsin…
Öncelikle bir web sitesi hazırlanırken sitede kullanılacak dile göre karakter kümesi kodlanır. Bu kodlama web sitemizde kullanılacak karakterlerin tanınmasını sağlar. Eğer biraz HTML bilgisine sahipseniz META taglarını duymuşsunuzdur. İşte bu karakter kümesi meta tagları içinde tanımlanır. Aşağıdaki kod satırından herhangibirisi türkçe karakterli siteler için kullanılabilir.
<META http-equiv=content-type content=text/html;charset=iso-8859-9>
<META http-equiv=content-type content=text/html;charset=windows-1254>
Bir örnek gösterelim;
<html>
<head>
<title>Karakter Kodlaması Örneği</title> Title tarayıcımızın en üstünde mavi yerde çıkacak sayfa başlığıdır
<META http-equiv=content-type content=text/html;charset=iso-8859-9>
</head>
<body>
Burası sayfamızın görüntülendiği gövde kısmıdır.
</body>
</html>
Bu şekilde sayfamızın türkçe karakterlere uygun olmasını sağlamış olduk.
Şimdi biraz UTF-8 den bahsedelim.
UTF-8 : 8 bitlik bir Unicode karakter seti formatıdır. “Unicode Transformation Format”‘ın kısaltması olarak kullanılır. UTF kullanarak 1 milyondan fazla karakter kodlanılabilinmektedir.
Yani anlıcağımız yukarıdaki META etiketleri arasına tanımladığımız türkçe karakter kümeleri ( iso-8859-9 ,windows-1254 ) yerine evrensel bir karakter kümesi tanımlayabiliriz “UTF-8 “. O zaman meta tagları içindeki kodumuz değişecektir ve şöyle olacaktır;
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>
Bu şekilde sayfamızı kodladığımızda sayfamızdaki türkçe karakterler tarayıcılar tarafından düzgün yorumlanacaktır.
Bu kodlamaya karşı yinede , türkçe karakter sorunları yaşayabiliriz. Bu bazen sunucudan, bazen kullandığımız web sisteminin kodlanmasından veya sayfayı editlerken kullandığımız editörden kaynaklı olabilir. Böyle bir durumda türkçe karakterler, “?” veya absürt karakterler ile değiştirilir (yani yorumlanamaz). Bunun için yapmamız gereken türkçe karakterler yerine html deki karşılıkları yada ascii kodlamadaki karşılığını yazmak.
Türkçe Karakterler İçin HTML karşılığı;
Ü <=> Ãœ
Ş <=> ÅŸ
Ğ <=> ÄŸ
Ç <=> Ç
İ <=> Ä°
Ö <=> Ö
ü <=> ü
ş <=> ÅŸ
ğ <=> ÄŸ
ç <=> ç
ı <=> ı
ö <=> ö
Türkçe Karakterler İçin ASCII karşılığı;
ç ç
ı ı
ğ ğ
ö ö
ş ş
ü ü
Ç Ç
İ İ
Ğ Ð
Ö Ö
Ş Ş
Ü Ü
Sayfamızdaki absürt karakterlerleri bu şekilde kodlarsak sorun ortadan kalkacaktır. Ama eğerki 10 tane sayfamız varsa ve hepsinde aynı sorunu bu şekilde halletmek istiyorsak o zaman iş baya bir zahmetli hale gelir. Sayfalardaki tüm karakterleri tek tek değiştirmek baya bir zamanımızı ve sabrımızı alacaktır. Ama bununda pratik bir yolu var.
. Bunun için notepad++ gibi bir editörde CTRL+H kısa yolunu kullanıp , üstteki resimdeki yolu takip ederek istediğimiz karakterin karşılığını tüm sayfalarda değiştirebiliriz.
Bir başka söylenecek şeyse, wordpress kullanıyorsanız ve türkçeleştirme işlemini notpad++ gibi bir editörde yapıyorsanız türkçe karakter sorunu yaşayabilirsiniz. WordPress te türkçeleştirme işlemlerinizi Tasarım–>>Tema Editörü bölümünden yaparsanız bu sorunlarla karşılaşmazsınız.
Ama türkçeleştirme yapacağınız dosya tema editöründe yoksa , o zaman bu işlemi notepad++ gibi bir editörde yapmak kaçınılmaz olur. O zaman yapmamız gereken editörümüzdeki Düzenle–>>UTF-8 (bom olmadan) kodla seçeneğini seçmektir. Böylece editlediğimiz sayfa utf-8 kod dizisine göre kodlanacaktır.
Aynı menüde UTF-8 de kodla seçeneğide vardır. Burayı işaretlesekte aynı sonuca ulaşırız. Ama ne yazıkki bu seçenekte bazı sorunlara neden olmaktadır.
UTF-8 de kodla seçeneğini seçtiğimizde editörümüz ,bizim göremiceğimiz bir şekilde sayfanın başına  gibi bir kod ekler. Bu kod , sayfanın UTF-8 olduğunu vurgular ( Yani BOM denilen şey) ve tarayıcılarda hatalara neden olur. O yüzden bu kodu kaldırmak için BOM olmadan kodla seçeneğini seçmemiz en sağlıklı sonucu verecektir.
Umarım anlatmak istediklerimi anlatabilmişimdir. Herkese kolay gelsin…