Hayır, HTML içinden mümkün değil. Sunucuların yanıt üstbilgisi, belgenin meta etiketine göre önceliklidir. O belirtilen oluyor gibi karakter kodlamasını Belirleme 5.2.2 - Şartname HTML 4.01 :
Özetle, uygun kullanıcı aracıları, bir belgenin karakter kodlamasını (en yüksek öncelikten en alçaka) belirlerken aşağıdaki önceliklere uymalıdır:
- "İçerik Türü" alanındaki bir HTTP "karakter kümesi" parametresi.
- "Http-equiv" ifadesinin "İçerik Türü" olarak ayarlanmış bir META bildirimi ve "karakter kümesi" için ayarlanmış bir değer.
- Harici bir kaynak belirleyen bir öğe üzerinde ayarlanan karakter kümesi özniteliği.
Bu yüzden sunucu tarafında yapılandırma gerektirir. Ancak bölüm devam ederken:
Kullanıcı aracıları, kullanıcıların hatalı "karakter kümesi" bilgilerini geçersiz kılmalarına olanak tanıyan bir mekanizma sağlayabilir. Ancak, bir kullanıcı aracısı böyle bir mekanizma sunuyorsa, yanlış bir "karakter kümesi" parametresiyle işaretlenmiş Web sayfalarının oluşturulmasını önlemek için yalnızca tarama için değil düzenleme için sunmalıdır.
Benim durumumda, sunucunun Content-Type üstbilgisi doğru mime türünü, ancak yanlış karakter kümesini içeriyor .
Anlaşıldığı gibi, Apache httpd yapılandırmam parçayı AddDefaultCharset
ekleyen açıklığı ayarlamıştı ; charset=ISO-8859-1
. Web sitelerinin kök dizinine .htaccess
aşağıdaki satırı yerleştirmek:
AddDefaultCharset Off
karakter kümesi bilgileri kaldırıldı:
$ curl -I http://example.com/file.html
HTTP/1.1 200 OK
Date: Fri, 19 Oct 2012 15:07:52 GMT
...
Content-Type: text/html
(son satıra bakın, ; charset=...
bölüm yok ). Bu, html meta etiketi ile birlikte, adı geçen tarayıcı sezgisel taramalarını meta etiketten karakter kümesini devralmak için tetikler . Web sitesi kodu çözüldü.
Şununla test edildi:
- Google Chrome s. 22.0.1229.94
- Firefox s. 16.0.1
- Lynx Sürüm 2.8.7rel.1 (05 Temmuz 2009)
Bu üç tarayıcı orijinal yapılandırma ile ilgili sorunlar yaşadı ve şimdi çalışıyor (hepsi Fedora 17'de).
- Opera 12.02
- Internet Explorer 6 (Win XP SP3)
Sorun ilk etapta yoktu. Her ikisi de sunucudan ISO-8859-1 ayarı yerine meta etiketten UTF-8'i tercih ediyorlardı .
UTF-8'i desteklemez, bu nedenle sunucu ayarından ve meta etiketten bağımsız olarak her zaman Western (Latin1) öğesini seçer .