Türkçe karakter sorunu ( ascii kodları , meta tagları , karakter kümeleri .. )

Pazar, Kasım 16th, 2008 | html notları, püf noktaları, wordpress | ercani

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ığı;

ç      &#231;
ı      &#305;
ğ     &#287;
ö     &#246;
ş     &#351;
ü     &#252;
Ç    &#199;
İ     &#304;
Ğ    &#208;
Ö    &#214;
Ş    &#350;
Ü   &#220;

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…

14 KonuşmaBakalım Kim Ne Demiş?


1
ayhan
22 Aralık 2008

paylaşımın için teşekkürler..


2
OLCAY
26 Ocak 2009

çok saolun vala bende bunu arıyodum gerçekten çok yardımcı oldu emeğinize sağlık


3
aykut
03 Şubat 2009

hocam ne kadar teşekkür etsem azdır bu türkçe karakterlerle başım dertteydi gercekten teşekkürler ;)


4
bamteli
07 Şubat 2009

Bu yazıyı okumuştum aradığımı bulamadığımdan yazmaya karar verdim.


5

[...] iki ayrı kategoride yazarak düzenledim, daha yararlı oldu diye düşünüyorum. Bu kodları buradan alıntı yaparak kullandım. Kendilerine [...]


6
deltreem
19 Şubat 2009

hocam paylaşım mukemmel ama sorum şu ki bir web sitesinde ascii kod yasaklanmış halde ise yanı ( * - _ ! ® ) gibi ifadeleri nick’inin yanına yazamıyorsan hangı sekılde yazabılırsın cunkı yasaklanmış olsa bile yapanlar var bunu ortadan kaldırmak ıstıyorum ve bende yapmak ıstıyorum yardımcı olursan sevinirim….


7
ercani
20 Şubat 2009

:) bu biraz hack işine giriyor.ascii kod yasaklanmaz sadece veritabanına müdahale olmasın diye form lara girilen karakterlerde sınırlama konulur onu aşman gerekecek. o verdiğin karakterin ascii deki kod karşılığını araştır onları kullan belki düzelir.


8
deltreem
23 Şubat 2009

yok canım estafrallah hackle falan işim yok ascii kod karsılıgı orn : ”©” nin ascii karsılıgı alt 0169
veya
”®” karsılıgı alt0174 gibi bunun karsılıgını yazdıgım sekılde olsa dahi yinede hatalı kullanıcı adı verıyor buna rağmen yapabilitemiz yokmu pekala ? cozebılıcegınızı umup sımdıden tesekkur edıyorum =))


9
NetSihirbazi
24 Mart 2009

Bende kendi wordpress blogumda bu sorunu yaşıyorum!
Ne yapsam da problemi çözemedim.
Wordpress sürümü tükçe, tema tükçe ancak yazılar, etiketler, ve diğer içerikte hep Türkçe karakter hatası bulunmakta!

Anlattığınız çözüm yolu da uygulasamda düzelmedi!

Yardımınızı rica ediyorum…

Şimdiden teşekkürler…


10
harun
30 Mart 2009

notepad++ rullzzz… yazı için teşekkürler tam aradıgım bi program. yazdıgım türkçe karakterlerin html karşılıklarını yazıyo çok teşekkür ederim… dw cs3 te bile böyle bişey yok :D adobe kendinden utanmalı


11
güvercin
28 Mayıs 2009

bunların html karşılıkları varmı ?


12
MyBB'den Ka
12 Haziran 2009

[...] T


13
halı yıkama
17 Haziran 2009

Sorunu hallettim sonunda. Teşekkürler


14
Çağatay Toksözoğlu
21 Haziran 2009

Hocam merhabalar, elimdeki sitenin veri tabanım utf-8, web sitemin tamamı da utf-8…fakat web sitesine el ile yazılan karakterler haricindeki veritabanından gelen karakterler bozuk görüntülenmekte tıpkı yazınızdaki gibi… bunu nasıl önleyebiliriz?

~Sadece Düşünme Sende Konuş~

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green

html notları Kategorisindeki Diğer Yazılar

Yazılar Emailine Gelsin

Email adresini yaz:

Delivered by FeedBurner

Kim Ne Demiş?

Site İstatistik

  • 172 adet yazı var.
  • 1,547 adet yorum var.
  • 5 Kişi şu anda çevrimiçi
  • 7 aynı anda maksimum kişi
  • 145478 Toplam ziyaretçi