Мне интересно узнать о взаимосвязи между DOCTYPE и charset в файле HTML 5.
Использование шаблона HTML по умолчанию в VSCode создает следующую разметку:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
<meta http-equiv = "X-UA-Compatible" content = "IE=edge">
<title>Page Title</title>
<meta name = "viewport" content = "width=device-width, initial-scale=1">
<link rel = "stylesheet" type = "text/css" media = "screen" href = "main.css" />
<script src = "main.js"></script>
</head>
<body>
</body>
</html>
У меня вопрос, нужны ли нам и DOCTYPE, и charset?
Если для doctype задано значение html (что относится к HTML 5), и мы знаем, что utf-8 является charset по умолчанию для HTML 5, должны ли мы указывать charset с помощью тега meta или браузер знает?






My question is, do we need both DOCTYPE and charset?
да
If the doctype is set to html (which refers to HTML 5), and we know that utf-8 is the default charset for that doctype
Это не так. Браузеры выполняют сложное обнюхивание для определения кодировки символов. Его явное указание более надежно.
Объявление <!DOCTYPE html> используется для информирования браузера посетителя веб-сайта о том, что отображаемый документ является документом HTML.
<!DOCTYPE html> - это доктайп html 5.
@charset определяет кодировку символов, используемую в таблице стилей, а <meta charset = "utf-8" /> определяет кодировку для документа HTML.
«отображаемый документ является HTML-документом». - Нет, вы думаете о HTTP-заголовке Content-Type. Doctype сообщает браузеру выполнять рендеринг в стандартном режиме.
"charset определяет кодировку символов, используемую в таблице стилей" - Нет. Указывает кодировку для документа HTML.
@charset определяет кодировку символов, используемую в таблице стилей, а <meta charset = "utf-8" /> определяет кодировку для документа HTML.
Да, но никто не упомянул CSS или @charset до вашего комментария только что.
Я соответствующим образом отредактировал свой ответ
Подготовить свой сайт для работы с большинством браузеров и платформ - хорошее правило. Использование того и другого гарантирует, что большинство технологий смогут прочитать все, что им нужно для представления вашего сайта.
Так что да ... эмпирическое правило ... всегда добавляйте настройки по умолчанию в свой код, на всякий случай.
С наилучшими пожеланиями.
Возможно, я перепутал "по умолчанию" с "предпочтительной" кодировкой.