Какъв запис трябва да използвам, за да определя символен набор за HTML5 Doctype?
Кратък:
<meta charset="utf-8" />
Дълъг:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
В HTML5 те са равностойни. Използвайте по-краткото, защото е по-лесно за запомняне и въвеждане. Поддръжката от браузъра е добра, тъй като е създадена за обратна съвместимост.
Двете форми на декларацията meta charset са еквивалентни и трябва да работят еднакво във всички браузъри. Но има няколко неща, които трябва да запомните, когато декларирате символния набор на уеб файловете си като UTF-8:
Сървърите Apache са конфигурирани да обслужват файловете в ISO-8859-1 по подразбиране, така че трябва да добавите следния ред към вашия файл .htaccess
:
AddDefaultCharset UTF-8
Това ще конфигурира Apache да обслужва вашите файлове, декларирайки UTF-8 кодиране в заглавието на отговора Content-Type, но вашите файлове трябва да бъдат записани в UTF-8 (без BOM) в началото.
Notepad не може да запише файловете ви в UTF-8 без BOM. Безплатен редактор, който може, е Notepad++. В лентата с менюта на програмата изберете "Encoding > Encode in UTF-8 without BOM". Можете също така да отваряте файлове и да ги записвате отново в UTF-8, като използвате "Encoding > Convert to UTF-8 without BOM".
Повече за Byte Order Mark (BOM) в Уикипедия.
Друга причина да изберете краткия вариант е, че той съответства на други случаи, в които може да посочите набор от символи в маркировката. Например:
<script type="javascript" charset="UTF-8" src="/script.js"></script>
<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>
Последователността помага да се намалят грешките и да се направи кодът по-четим.
Обърнете внимание, че атрибутът charset не се различава по размер на буквите. Можете да използвате UTF-8 или utf-8, но UTF-8 е по-ясен, по-четим и по-точен.
Освен това няма абсолютно никаква причина да използвате друга стойност освен UTF-8 в атрибута meta charset или в заглавието на страницата. UTF-8 е кодирането по подразбиране за уеб документи от HTML4 през 1999 г. насам и единственият практичен начин за създаване на съвременни уеб страници.
Също така не трябва да използвате HTML същности в UTF-8. Символи като символа за авторско право трябва да се въвеждат директно. Единствените същности, които трябва да използвате, са за 5-те запазени символа за маркиране: по-малко от, по-голямо от, амперсанд, първо число, двойно число. За ентитетите е необходим HTML анализатор, който може да не искате винаги да използвате занапред, те внасят грешки, правят кода ви по-нечетим, увеличават размерите на файловете ви и понякога се декодират неправилно в различните браузъри в зависимост от това кои ентитети сте използвали. Научете се как да въвеждате/вмъквате авторски права, търговски марки, отворени кавички, затворени кавички, апострофи, тирета em, тирета en, точки, евро и всякакви други символи, които срещате в съдържанието си, и да използвате тези действителни символи в кода си. Mac разполага с функция за преглед на символите, която можете да включите в системните предпочитания на клавиатурата, и можете да намерите и след това да плъзнете и пуснете необходимите символи или да използвате съответстващия на тях преглед на клавиатурата, за да видите кои клавиши да въведете. Например, търговската марка е Option+2. UTF-8 съдържа всички знаци и символи от всеки писмен човешки език. Така че няма извинение за използването на -- вместо тире. Не е лоша идея да научите и правилата на пунктуацията и типографията... например да знаете, че точката се поставя в затворена кавичка, а не извън нея.
Използването на <meta> таг за нещо като content-type и encoding е изключително важно. ирония на съдбата, тъй като без да знаете тези неща, не бихте могли да анализирате файла за да получите стойността на мета тага.
Не, това не е вярно. Браузърът започва да анализира файла като кодировката по подразбиране на браузъра'- UTF-8 или ISO-8859-1. Тъй като US-ASCII е подмножество както на ISO-8859-1, така и на UTF-8, браузърът може да прочете
и по двата начина... той е един и същ. Когато браузърът се сблъска с тага meta charset, ако кодирането е различно от това, което браузърът вече използва, браузърът презарежда страницата в посоченото кодиране. Ето защо поставяме тага meta charset най-отгоре, веднага след тага head, преди всичко останало, дори преди заглавието. По този начин можете да използвате UTF-8 символи в заглавието си.Трябва да запишете файла(ите) си в кодировка UTF-8 без BOM
Това не е строго вярно. Ако в документа ви има само US-ASCII символи, можете да го запазите като US-ASCII и да го поднесете като UTF-8, тъй като той е подмножество. Но ако има Unicode символи, сте прави, трябва да Запишете като UTF-8 без BOM.
Ако искате добър текстов редактор, който ще запазва файловете ви в UTF-8, препоръчвам Notepad++.
На Mac използвайте Bare Bones TextWrangler (безплатен) от Mac App Store или Bare Bones BBEdit, който е в Mac App Store за 39,99 USD ... много евтино за такъв чудесен инструмент. И в двете приложения в долната част на прозореца на документа има меню, в което се задава кодирането на документа и можете лесно да изберете "UTF-8 no BOM". И разбира се, можете да зададете това като подразбиране за нови документи в Предпочитания.
Но ако вашият уеб сървър подава кодировката в HTTP заглавието, което е препоръчително, и двата [мета тага] са излишни.
Това е неправилно. Разбира се, трябва да зададете кодирането в HTTP заглавието, но трябва да го зададете и в атрибута meta charset, така че страницата да може да бъде запазена от потребителя, изведена от браузъра в локална памет и след това отворена отново по-късно, като в този случай единственият индикатор за кодирането, който ще присъства, е атрибутът meta charset. По същата причина трябва да зададете и таг base ... на сървъра тагът base не е необходим, но когато се отвори от локално хранилище, тагът base позволява на страницата да работи така, сякаш е на сървъра, с всички активи на място и т.н., без прекъснати връзки.
AddDefaultCharset UTF-8
Или можете просто да промените кодирането на определени типове файлове по следния начин:
AddType text/html;charset=utf-8 html
Съвет за обслужване на UTF-8 и Latin-1 (ISO-8859-1) файлове е да дадете на UTF-8 файловете разширение "text", а на Latin-1 файловете "txt."
AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text
И накрая, помислете дали да запазвате документите си с край на редовете на Unix, а не с наследените окончания на редовете на DOS или (класически) Mac, които не помагат и могат да навредят, особено в бъдеще, когато все повече се отдалечаваме от тези наследени системи. HTML документ с валиден HTML5, UTF-8 кодиране и Unix окончания на редовете е добре свършена работа. Можете да споделяте, редактирате, съхранявате, четете, възстановявате и разчитате на този документ в много контексти. Това е лингва франка. Това е цифрова хартия.