HTTP üstbilgileri hatası için karakter kümesi belirtilmedi


15

Bu sayfayı Sayfa Hızı ile test ederken bir Specify a character sethata mesajı alıyorum:

The following resources have no character set specified in their HTTP headers. Specifying a character set in HTTP headers can speed up browser rendering.

Content-TypeEtiket yani nereye hata geliyor, mevcut ve sayfa UTF-8 de kodlama ile kurtarıldı?


apache'de nerede? hangi dizin?

Yanıtlar:


19

Belge gövdesine değil , Yanıt Başlıklarına atıfta bulunur ("İçerik Türü etiketi").

Sayfanızın Yanıt Başlıkları'nı herhangi bir HTTP Hata Ayıklayıcısı ile kontrol ederseniz (örneğin, Firebug için Firebug'un Net paneli veya Google Chrome / Internet Explorer / Safari / Opera'daki Geliştirici Araçları'nın benzer bir sekmesi ) bu satırı görürsünüz:

Content-Type: text/html

Aynı zamanda, bu sayfa için aynısını kontrol ederseniz şunları görürsünüz:

Content-Type: text/html; charset=utf-8

Sayfa Hızı eksik kısma atıfta bulunuyor. Having doğru başlıklarda karakter kümesi mevcut aslında sayfayı render hızlandırır biraz . Yanıt üstbilgisinde yanlış karakter kümesi belirtildiğinde (veya hiç karakter kümesi ayarlanmadı) tarayıcının, doğru karakter kümesi bildirimini ( <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />satır) bulana kadar sayfayı taraması / yorumlaması ve karakter kümesi tarayıcıdan farklıysa oluşturma işlemini yeniden başlatması gerekir varsayılan ayarlar.

Performans cezası hiç de büyük değil - kullanıcı için gerçekten eski / yavaş donanım kullanılmadıkça (her tarayıcı ve tarayıcı sürümü için farklı olmasına rağmen) farkedilemez. Belki doğrudan bununla ilgili başka bir "ceza" vardır, ama ben şahsen onların farkında değilim.

Düzeltme: Bu başlığı kendiniz oluşturursanız (PHP betiğinizde), karakter kümesini de içerecek şekilde değiştirmeniz gerekir. Komut dosyanız bu tür başlık manipülasyonları yapmazsa, sunucu yanlış yapılandırma sorunudur.


Az önce ekledim header('Content-type: text/html; charset=UTF-8');. Çok teşekkürler!
Alex

6
Yanıt başlıklarını ile de görüntüleyebilirsiniz curl --head $url. Varsayılan karakter seti Apache'de AddDefaultCharset utf-8.htaccess gibi bir yapılandırma dosyasına eklenerek belirtilebilir .
Lri

Açık bir açıklama için +1, genellikle bunu merak etti ve kafası karıştı. Çözüldü htaccess AddDefaultCharset ek
Malachi

Gerekmiyor <meta charset="utf+8">yeterli?
Daniel Springer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.