Вам повезло. Явная цель состоит в том, чтобы указать, что кодировки символов используются неправильно. Когда пользователи увидят это, они узнают, что мы испортили и потеряли некоторые из их текстовых данных, и мы узнаем, что в один или несколько моментов наша обработка и / или конфигурация неверны.
(Шрифты не обсуждаются [если только нет шрифта, доступного для рендеринга.]. Когда нет шрифта, доступного для символа, он обычно отображается в виде белого прямоугольника.)
Основы кодировки символов просты: используйте достаточный набор символов (скажем, Unicode), выберите подходящую кодировку (скажем, UTF-8), закодируйте текст с ним для получения байтов, сообщите каждой программе и человеку, который получает байты, которые они представляют текст и какая кодировка используется. Кодировка может быть понята из стандарта, соглашения или спецификации.
Ваш редактор выполняет фактическую кодировку.
Если файл является частью проекта или подобной системы, файл проекта может хранить предполагаемую кодировку для всего или каждого текстового файла в проекте. Если ваш редактор - IDE, он должен понимать, как проект делает это.
Ваш компилятор должен знать кодировку каждого текстового файла, который вы ему даете. Система проекта будет передавать то, что знает.
HTML предоставляет дополнительный способ передачи кодировки. Пример: <meta charset="utf-8">
. Редактор с поддержкой HTML не должен допускать, чтобы этот индикатор отличался от кодировки, которую он использует при сохранении файла. HTML-редактор может обнаружить этот индикатор при открытии файла и использовать указанную кодировку для чтения файла.
HTTP использует другой необязательный способ: заголовок ответа Content-Type. Веб-сервер испускает это либо статически, либо в сочетании с выполняемым им кодом, например ASP.NET.
Веб-браузеры используют HTTP-способ, если он указан.
XHR (AJAX и т. Д.) Использует HTTP наряду с обработкой JavaScript. При необходимости при обработке JavaScript следует применять правила HTTP и HTML, в зависимости от ситуации. Примечание. Если содержимое имеет формат JSON, текущий RFC требует кодировки UTF-8.
Никто или вещь не должны догадываться.
Диагностика
Какую кодировку символов вы намеревались использовать? В этом столетии UTF-8 является настолько нормой, что, если вы решите использовать другую, у вас должна быть веская причина и задокументировать ее (для других и вашего будущего Я).
Сравните байты в файле с текстом, который вы ожидаете представить. Использует ли он предполагаемую кодировку? Используйте редактор или инструмент, который показывает байты в шестнадцатеричном виде.
Как подсказывает @snakecharmerb, что отправляет сервер? Используйте вкладку сети F12 веб-браузера.
- Что говорит заголовок ответа HTTP, если что?
- Что говорит метатег HTML, если что?
- Что такое HTML-тип документа, если таковой имеется?