Для того чтобы определить charset для 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).
Блокнот не может сохранять файлы в UTF-8 без BOM. Свободный редактор, который может это сделать, - Notepad++. В строке меню программы выберите пункт "Кодировка > Кодировать в UTF-8 без BOM". Также можно открыть файлы и пересохранить их в UTF-8 с помощью команды "Кодировка > Преобразовать в UTF-8 без BOM".
Подробнее о Byte Order Mark (BOM) at Wikipedia.
Еще одна причина выбрать короткий вариант заключается в том, что он соответствует другим случаям, когда в разметке можно указать набор символов. Например:
<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, в мета-атрибуте charset или заголовке страницы. UTF-8 является кодировкой по умолчанию для Web-документов, начиная с HTML4 в 1999 году, и единственным практическим способом создания современных Web-страниц.
Также не следует использовать сущности HTML в UTF-8. Такие символы, как символ копирайта, следует набирать непосредственно. Единственные сущности, которые следует использовать, - это 5 зарезервированных символов разметки: меньше, чем, больше, чем, амперсанд, прайм, двойной прайм. Сущности требуют наличия HTML-парсера, который не всегда стоит использовать в дальнейшем. Они вносят ошибки, делают код менее читабельным, увеличивают размер файла и иногда неправильно декодируются в различных браузерах в зависимости от того, какие сущности вы использовали. Узнайте, как набирать/вставлять символы копирайта, торговой марки, открытой и закрытой кавычки, апострофа, тире, тире en, пули, евро и любые другие символы, встречающиеся в контенте, и использовать эти символы в коде. В Mac имеется средство просмотра символов, которое можно включить в системных предпочтениях клавиатуры. Вы можете найти и затем перетащить нужные символы, или воспользоваться соответствующим средством просмотра клавиатуры, чтобы увидеть, какие клавиши следует набирать. Например, торговая марка - это Option+2. UTF-8 содержит все символы и знаки всех письменных человеческих языков. Поэтому нет никакого оправдания использованию -- вместо тире. Не помешает также изучить правила пунктуации и типографики... например, знать, что точка ставится внутри закрытой кавычки, а не снаружи.
Использование тега <meta> для таких параметров, как тип содержимого и кодировка, является весьма иронично, поскольку, не зная этих вещей, вы не сможете разобрать файл. чтобы получить значение метатега.
Нет, это не так. Браузер начинает разбор файла в кодировке по умолчанию - 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 долл. В любом из этих приложений в нижней части окна документа есть меню, в котором задается кодировка документа, и вы можете легко выбрать "UTF-8 no BOM". И, конечно, можно установить эту кодировку по умолчанию для новых документов в Preferences.
Но если ваш веб-сервер передает кодировку в 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 - это хорошо выполненная работа. Вы можете делиться этим документом, редактировать его, хранить, читать, восстанавливать и полагаться на него во многих контекстах. Это лингва франка. Это цифровая бумага.
в<мета кодировку="в кодировке UTF-8" и>
был введен с/для HTML5.
Как указано в документации, оба действительны. Однако, в <мета кодировку="в кодировке UTF-8" и>
это только для HTML5 (и проще набрать/помню).
В свое время по старому стилю должен стать устаревший в ближайшем будущем. Я'd и придерживаться нового в <мета кодировку="в кодировке UTF-8" и>
. <БР><БР>там's только один способ, но вверх. В теч's случай, что'ы постепенный отказ от старого (очень быстро)
Документация: HTML мета кодировку атрибут—W3Schools
При этом, не оспаривая других ответов, я думаю, что следующий достойный упоминания.
НТТР-экв
) и “короткие” равны, в зависимости, что наступит первым, выигрывает;Вы можете проверить, запустив Эхо 'НТТР/1.1 200 ОК\Р\nContent-тип: текст/HTML; кодировка=в windows-1251\р\н\р\н\также xef\xBB по\ИЦ<!Элемент DOCTYPE в HTML><HTML-код><головы><мета НТТР-экв="По материалам-типа„ содержание="в текст/HTML; кодировка=кодировка UTF-8" и><мета charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | НК -ЛП 4500 и указав в браузере по адресу localhost:4500
. (Конечно, вы хотите изменить или удалить части. Спецификации часть \также xef\xBB по\ИЦ
. Будьте осторожны кодировку оболочка.)
Обратите внимание, что это'ы очень важно, что вы явно объявить кодировку. Давая браузеры, думаю, может привести к проблемам безопасности.
Использование в `<мета кодировку="в кодировке UTF-8 и" /> для веб-браузеров, когда с помощью HTML5.
Использовать в <мета НТТР-экв="По материалам-типа„ содержание="в текст/HTML; кодировка=кодировка UTF-8 и" />
при использовании HTML4 или XHTML или устаревшего дом Парсеры, как DOMDocument
в PHP 5.3
Для размещения подписи на электронной почте, я хотел бы использовать длинную версию:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Причина в том, что не многие читатели электронной почты использовать HTML5, так что's всегда лучше использовать старые стили HTML. На самом деле, это'ы лучше использовать таблиц, дивов и CSS, а также.