путаница между кодировкой веб-документа и кодировкой, явно используемой в документе - PullRequest
1 голос
/ 09 апреля 2020

Я знаю, что это очень глупый вопрос, но, к сожалению, не мог понять это самостоятельно. У меня всегда возникает путаница, когда речь идет о темах кодирования и набора символов. Я объясню, что я понимаю из топи c, затем я задам свои вопросы.

, когда вы хотите сохранить файл, вы делаете это в определенной кодировке символов, что означает, что каждый символ файл помещается в память в соответствии с его кодировкой. правильно?

например, если файл html имеет кодировку utf-16, означает ли это, что браузер использует кодировку utf-16 для декодирования данного файла для чтения исходного кода ?

с использованием атрибута charset в элементе meta определяет, какую кодировку должен использовать язык (html) для правильного отображения символов в браузере?

и html добавили "html ссылка на символ "сама по себе, и она не имеет ничего общего с кодами символов Юникода?

Edit1 :

, поэтому после @snakecharmerb я осознал некоторые из своих ошибок:

1- Я не знал, что метаданные о кодировке [текстовых файлов] отсутствуют.

2 - атрибут charset сообщает браузеру кодировку файла, поскольку эта информация может не может быть задуман из самого файла (до в некоторой степени он может. См. этот ответ)

3 - текстовый файл может иметь только одну кодировку, и если файл закодированный с utf-8 это означает, что это следует за Набором символов Unicode (UCS). Вы не можете использовать кодировку utf-8 с другим набором символов, и сегодня термины utf-8 и unicode практически взаимозаменяемы.

1 Ответ

1 голос
/ 09 апреля 2020

когда вы хотите сохранить файл, вы делаете это в определенной кодировке символов, что означает, что каждый символ файла помещается в память в соответствии с его кодировкой. верно?

  • да, каждый символ кодируется в конкретное значение c цифра c; декодирование преобразует значение цифры c обратно в символ

, например, если файл html имеет кодировку utf-16, означает ли это, что браузер использует кодировку utf-16 для декодирования данного файла читать исходный код?

  • браузер попытается декодировать страницу, используя кодировку, указанную в заголовке Content-Type в заголовках ответа от веб-сервера; если заголовок отсутствует или не указывает кодировку, будет использоваться тег meta charset на странице. Если ни то, ни другое не указано, браузер может попытаться определить кодировку из содержимого документа и, в конце концов, переключиться на латиницу-1

  • , w3 c рекомендует всегда установка метатега, установка только заголовка Content-Type, если вы уверены, что он будет правильным, и всегда использование UTF-8 в качестве кодировки.

делает использование атрибута charset в элементе meta определяет, какую кодировку должен использовать язык (html) для правильного отображения символов в браузере?

  • сообщает браузеру, какую кодировку следует использовать для декодирования страницы

и html добавил «1043 * символьную ссылку» сам по себе, и это не имеет никакого отношения к кодам символов Unicode?

  • html сущностей (например, ' или ') не зависят от какой-либо конкретной кодировки, но их составляющие символы сами будут кодироваться и декодироваться
...