HTML5 Doctype** için charset tanımlamak için hangi notasyonu kullanmalıyım?
Kısa:
<meta charset="utf-8" />
Uzun:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
HTML5'te bunlar eşdeğerdir. Daha kısa olanı kullanın, hatırlaması ve yazması daha kolaydır. Geriye dönük uyumluluk için tasarlandığından Tarayıcı desteği iyidir.
meta charset]4 bildiriminin her iki biçimi de eşdeğerdir ve tarayıcılar arasında aynı şekilde çalışmalıdır. Ancak, web dosyalarınızın karakter kümesini UTF-8 olarak bildirirken hatırlamanız gereken birkaç şey vardır:
Apache sunucuları varsayılan olarak dosyaları ISO-8859-1 olarak sunacak şekilde yapılandırılmıştır, bu nedenle .htaccess
dosyanıza aşağıdaki satırı eklemeniz gerekir:
AddDefaultCharset UTF-8
Bu, Apache'yi dosyalarınızı Content-Type yanıt başlığında UTF-8 kodlaması bildirerek sunacak şekilde yapılandırır, ancak dosyalarınız başlangıçta UTF-8 (BOM olmadan) olarak kaydedilmelidir.
Notepad, BOM olmadan dosyalarınızı UTF-8 olarak kaydedemez. Bunu yapabilen ücretsiz bir editör Notepad++. Program menü çubuğunda "Encoding > Encode in UTF-8 without BOM" seçeneğini seçin. Ayrıca "Encoding > Convert to UTF-8 without BOM" seçeneğini kullanarak dosyaları açabilir ve UTF-8 olarak yeniden kaydedebilirsiniz.
Daha fazla bilgi için Byte Order Mark (BOM) at Wikipedia.
Kısa olanı seçmenin bir başka nedeni de, işaretlemede karakter kümesi belirtebileceğiniz diğer örneklerle eşleşmesidir. Örneğin:
<script type="javascript" charset="UTF-8" src="/script.js"></script>
<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>
Tutarlılık, hataları azaltmaya ve kodu daha okunabilir hale getirmeye yardımcı olur.
charset özniteliğinin büyük/küçük harf duyarsız olduğunu unutmayın. UTF-8 veya utf-8 kullanabilirsiniz, ancak UTF-8 daha net, daha okunabilir ve daha doğrudur.
Ayrıca, meta charset niteliğinde veya sayfa başlığında UTF-8 dışında herhangi bir değer kullanmak için kesinlikle hiçbir neden yoktur. UTF-8, 1999'daki HTML4'ten bu yana Web belgeleri için varsayılan kodlamadır ve modern Web sayfaları oluşturmanın tek pratik yoludur.
Ayrıca HTML varlıklarını UTF-8'de kullanmamalısınız. Telif hakkı sembolü gibi karakterler doğrudan yazılmalıdır. Kullanmanız gereken tek varlıklar 5 ayrılmış işaretleme karakteri içindir: küçüktür, büyüktür, ve işareti, asal, çift asal. Varlıklar, ileride her zaman kullanmak istemeyebileceğiniz bir HTML ayrıştırıcısına ihtiyaç duyar, hatalara neden olur, kodunuzu daha az okunabilir hale getirir, dosya boyutlarınızı artırır ve bazen hangi varlıkları kullandığınıza bağlı olarak çeşitli tarayıcılarda yanlış kod çözer. Telif hakkı, ticari marka, açık tırnak, kapalı tırnak, kesme işareti, em tire, en tire, madde işareti, Euro ve içeriğinizde karşılaştığınız diğer karakterleri nasıl yazacağınızı/ekleyeceğinizi öğrenin ve kodunuzda bu gerçek karakterleri kullanın. Mac'te Klavye Sistem Tercihi'nden açabileceğiniz bir Karakter Görüntüleyici vardır ve ihtiyacınız olan karakterleri bulup sürükleyip bırakabilir veya hangi tuşları yazacağınızı görmek için eşleşen Klavye Görüntüleyici'yi kullanabilirsiniz. Örneğin, ticari marka Option+2'dir. UTF-8 her yazılı insan dilindeki tüm karakterleri ve sembolleri içerir. Dolayısıyla, em tire yerine -- kullanmanın hiçbir mazereti yoktur. Noktalama işaretleri ve tipografi kurallarını öğrenmek de fena bir fikir değildir... örneğin, noktanın kapalı tırnak içine gireceğini, dışına çıkmayacağını bilmek gibi.
İçerik türü ve kodlama gibi bir şey için <meta> etiketi kullanmak son derece ironik, çünkü bunları bilmeden dosyayı ayrıştıramazdınız meta etiketinin değerini almak için.
Hayır, bu doğru değil. Tarayıcı, dosyayı tarayıcının varsayılan kodlaması olan UTF-8 veya ISO-8859-1 olarak ayrıştırmaya başlar. US-ASCII hem ISO-8859-1 hem de UTF-8'in bir alt kümesi olduğundan, tarayıcı
'i her iki şekilde de okuyabilir... aynıdır. Tarayıcı meta charset etiketiyle karşılaştığında, kodlama tarayıcının halihazırda kullandığından farklıysa, tarayıcı sayfayı belirtilen kodlamada yeniden yükler. Bu nedenle meta charset etiketini en üste, head etiketinden hemen sonra, diğer her şeyden, hatta başlıktan bile önce koyarız. Bu şekilde başlığınızda UTF-8 karakterlerini kullanabilirsiniz.Dosyalarınızı UTF-8 kodlamasında BOM olmadan kaydetmelisiniz
Bu tam olarak doğru değil. Belgenizde yalnızca US-ASCII karakterleri varsa, US-ASCII olarak kaydedebilir ve UTF-8 olarak sunabilirsiniz, çünkü bu bir alt kümedir. Ancak Unicode karakterler varsa, haklısınız, BOM olmadan UTF-8 olarak kaydetmelisiniz.
Dosyalarınızı kaydedecek iyi bir metin editörü istiyorsanız UTF-8 içinde, Notepad++'ı tavsiye ederim.
Mac'te, Mac App Store'dan Bare Bones TextWrangler (ücretsiz) veya Mac App Store'da 39,99 $ 'a bulunan Bare Bones BBEdit'i kullanın ... böyle harika bir araç için çok ucuz. Her iki uygulamada da, belge penceresinin altında belge kodlamasını belirttiğiniz bir menü vardır ve "UTF-8 no BOM" seçeneğini kolayca seçebilirsiniz. Ve tabii ki bunu Tercihler'de yeni belgeler için varsayılan olarak ayarlayabilirsiniz.
Ancak Web sunucunuz HTTP başlığındaki kodlamayı sunuyorsa, tavsiye edilir, her iki [meta etiketi] de gereksizdir.
Bu doğru değil. Kodlamayı elbette HTTP başlığında ayarlamalısınız, ancak aynı zamanda meta charset özniteliğinde de ayarlamalısınız, böylece sayfa kullanıcı tarafından tarayıcıdan yerel depolama alanına kaydedilebilir ve daha sonra tekrar açılabilir, bu durumda mevcut olacak kodlamanın tek göstergesi meta charset özniteliğidir. Aynı nedenden dolayı bir taban etiketi de ayarlamalısınız... sunucuda taban etiketi gereksizdir, ancak yerel depolama alanından açıldığında, taban etiketi sayfanın sunucudaymış gibi çalışmasını sağlar, tüm varlıklar yerinde olur ve böylece kırık bağlantılar olmaz.
AddDefaultCharset UTF-8
Ya da belirli dosya türlerinin kodlamasını bu şekilde değiştirebilirsiniz:
AddType text/html;charset=utf-8 html
Hem UTF-8 hem de Latin-1 (ISO-8859-1) dosyalarını sunmak için bir ipucu UTF-8 dosyalarına "text" uzantısı ve Latin-1 dosyalarına "txt." vermektir;
AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text
Son olarak, belgelerinizi eski DOS veya (klasik) Mac satır sonları ile değil, Unix satır sonları ile kaydetmeyi düşünün; bunlar yardımcı olmaz ve özellikle bu eski sistemlerden uzaklaştıkça zarar verebilir. Geçerli HTML5, UTF-8 kodlaması ve Unix satır sonlarına sahip bir HTML belgesi iyi yapılmış bir iştir. Bu belgeyi paylaşabilir, düzenleyebilir, saklayabilir, okuyabilir, kurtarabilir ve birçok bağlamda bu belgeye güvenebilirsiniz. Bu bir lingua franca'dır. Dijital kağıttır.