Yakuza

WFN Üye
Konular
577
Mesajlar
577
Çözüm
0
Ticaret Puanı
0
Üyelik
24 Gün
Konum
Artvin
Web Sitesi
Var
Alanı
SEO Danışmanı
1/1
Konu sahibi
Türkçe karakterler sayfada bozuk görünüyorsa önce HTML dosyasını UTF-8 olarak kaydedin, ardından <head> bölümüne <meta charset="UTF-8"> etiketini ekleyin. Sayfa sunucudan farklı bir karakter kodlamasıyla gönderiliyorsa HTTP yanıt başlığının da UTF-8 olması gerekir. Bu üç nokta aynı kodlamayı kullanıyorsa ç, ğ, ı, İ, ö, ş, ü karakterleri doğru görüntülenir.

HTML dosyasında UTF-8 kodlamasını etkinleştirme​


UTF-8, Türkçe dâhil birçok dilin karakterlerini temsil eden karakter kodlamasıdır. HTML dosyasının kendisi başka bir kodlamayla kaydedilmiş, tarayıcıya UTF-8 bilgisi verilmemiş veya sunucu farklı bir kodlama bildirmişse karakterler ç, ÄŸ ya da ? gibi görünebilir.

Önce kullandığınız kod editöründe HTML dosyasının karakter kodlamasını UTF-8 olarak seçin. Dosyayı yeniden kaydederken mümkünse UTF-8 without BOM veya yalnızca UTF-8 seçeneğini kullanın. Editörün adı ve menüleri değişebileceği için önemli olan seçenek adından çok dosyanın gerçekten UTF-8 olarak kaydedilmesidir.

Ardından <meta charset="UTF-8"> etiketini <head> içinde, mümkün olduğunca erken bir konuma yerleştirin:

HTML:
<!doctype html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>Türkçe karakter denemesi</title>
</head>
<body>
    <p>Çalışan örnek: ç, ğ, ı, İ, ö, ş, ü.</p>
</body>
</html>

Dosyayı kaydedip tarayıcıda yeniden açtığınızda metin doğru görünüyorsa HTML belgesinin temel kodlama ayarı düzeltilmiştir. lang="tr" özniteliği sayfanın Türkçe olduğunu belirtir; ancak tek başına karakter sorununu çözmez. Karakterleri doğru gösteren asıl ayarlar dosyanın UTF-8 kaydedilmesi ve charset bildirimidir.

Sorunun kaynağını ayırma​


Aynı karakter sorunu farklı katmanlarda oluşabilir. Görünen bozulma, hangi aşamada yanlış kodlama kullanıldığını anlamak için ipucu verir.
BelirtiMuhtemel nedenYapılacak işlem
Dosyada bile karakterler bozukDosya yanlış kodlamayla kaydedilmiş veya metin daha önce bozulmuşKaynak metni düzeltip dosyayı UTF-8 olarak yeniden kaydedin
Editörde doğru, tarayıcıda bozukMeta charset eksik veya sunucu farklı kodlama bildiriyorMeta etiketini ve HTTP yanıt başlığını kontrol edin
Bazı veriler doğru, veritabanından gelenler bozukVeri aktarımında veya veritabanı bağlantısında kodlama uyuşmazlığıVerinin kaydedildiği ve okunduğu kodlamaları birlikte inceleyin
Yalnızca form gönderiminden sonra bozulmaForm verisini alan uygulama farklı kodlama kullanıyorİstemci, sunucu ve veri kaydetme katmanlarında UTF-8 uyumunu kontrol edin
Tablodaki ilk iki durum doğrudan HTML dosyasıyla ilgilidir. Veriler bir veritabanından, API’den veya sunucu tarafı programdan geliyorsa yalnızca <meta charset> eklemek yeterli olmayabilir; çünkü bu etiket tarayıcıya HTML belgesinin kodlamasını bildirir, daha önce yanlış kaydedilmiş veriyi onarmaz.

Sunucunun gönderdiği kodlamayı kontrol etme​


Dosya UTF-8 olsa ve HTML içinde doğru meta etiketi bulunsa bile sunucu yanıtı Content-Type başlığında farklı bir karakter kodlaması bildiriyorsa tarayıcı bu bildirimi dikkate alabilir. HTML yanıtı için beklenen biçim genel olarak şöyledir:

Kod:
Content-Type: text/html; charset=UTF-8

Bu başlık web sunucusunun veya sunucu tarafı uygulamanın ayarından gönderilir. Değişiklik yaptıktan sonra sayfayı önbellekten bağımsız olarak yeniden yükleyin ve yanıt başlığında charset=UTF-8 bilgisinin bulunduğunu kontrol edin. Başlık doğruysa bu, sunucunun HTML yanıtını UTF-8 olarak bildirdiğini gösterir; ancak dosyanın içeriğinin gerçekten UTF-8 kaydedildiğini tek başına kanıtlamaz. Dosya hâlâ başka bir kodlamadaysa kaynak dosyayı da yeniden kaydetmeniz gerekir.

Çalışmayan karakterleri düzeltme sırası​


Sorunu rastgele ayar değiştirerek değil, kodlamanın her aşamasını aynı değere getirerek çözün:
  1. HTML dosyasını editörde açın ve karakter kodlamasının UTF-8 olduğunu kontrol edin.
  2. Dosyayı UTF-8 olarak yeniden kaydedin. Kaynakta daha önce ç gibi bozulmuş metinler varsa bunları ayrıca doğru Türkçe karakterlerle düzeltin; kodlama ayarını değiştirmek bozulmuş metni otomatik olarak onarmaz.
  3. Belgenin <head> bölümüne <meta charset="UTF-8"> ekleyin.
  4. Dosyayı sunucuya yeniden yükleyin veya uygulamayı yeniden yayımlayın.
  5. Tarayıcıda sayfayı yeniden yükleyin ve hem sabit HTML metnini hem de sunucudan gelen verileri ayrı ayrı kontrol edin.
  6. Sabit metin doğru, dinamik veri bozuksa HTML etiketini değiştirmek yerine verinin üretildiği, taşındığı veya kaydedildiği katmanı inceleyin.
Örneğin kaynak dosyada Şehir: İstanbul doğru görünmesine rağmen tarayıcıda Şehir: İstanbul görünüyorsa sorun genellikle dosya ile tarayıcının kullandığı kodlama bilgisinin uyuşmamasıdır. Kaynak dosyada da İstanbul yazıyorsa metin daha önce yanlış yorumlanarak kaydedilmiş olabilir; bu durumda doğru metni yazıp dosyayı UTF-8 olarak kaydetmek gerekir.

HTML varlıkları ne zaman kullanılmalı?​


Türkçe karakterleri normal metin içinde doğrudan kullanmak genellikle en anlaşılır çözümdür:

HTML:
<p>İstanbul’da Türkçe içerik yayınlanıyor.</p>

İsterseniz &ccedil;, &ouml; veya &uuml; gibi HTML karakter varlıklarını da kullanabilirsiniz. Ancak bunlar yanlış dosya kodlamasını düzeltmez; yalnızca belirli karakterleri alternatif bir yazımla ifade eder. Sayfadaki Türkçe metnin tamamında varlık kullanmak yerine dosyayı UTF-8 olarak tutmak daha sürdürülebilir bir yaklaşımdır. Kesme işareti gibi normal metin karakterlerini gereksiz yere HTML varlığına dönüştürmeniz gerekmez.

Çözümün doğru olduğunu nasıl anlarsınız?​


Test için sayfaya doğrudan ç, ğ, ı, İ, ö, ş, ü karakterlerini ve Türkçe bir cümleyi ekleyin. Kaynak dosyada, tarayıcıda ve varsa formdan veya veritabanından gelen içerikte aynı görünüyorsa ilgili katmanlar uyumludur.

Yalnızca sabit metin doğru görünüyorsa HTML dosyası büyük olasılıkla düzelmiştir; dinamik içerik için sunucu kodu, veri aktarımı veya veritabanı bağlantısı ayrıca kontrol edilmelidir. Hiçbir metin doğru görünmüyorsa önce dosyanın UTF-8 kaydedildiğini ve sunucunun Content-Type başlığını inceleyin. Bu kontrollerden sonra sorun devam ederse destek talebine sayfanın adresini, bozuk görünen örnek metni, kaynak dosyada metnin nasıl göründüğünü ve sunucunun gönderdiği Content-Type değerini ekleyin; parola, erişim anahtarı ve kişisel verileri paylaşmayın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic