~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 678A8228E8C046F71FE9A4F40FBA420A__1704718320 ✰
Заголовок документа оригинал.:
✰ Character encodings in HTML - Wikipedia ✰
Заголовок документа перевод.:
✰ Кодировки символов в HTML — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Character_encodings_in_HTML ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/67/0a/678a8228e8c046f71fe9a4f40fba420a.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/67/0a/678a8228e8c046f71fe9a4f40fba420a__translat.html ✰
Дата и время сохранения документа:
✰ 12.06.2024 03:44:46 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 8 January 2024, at 15:52 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Кодировки символов в HTML — Википедия Jump to content

Кодировки символов в HTML

Из Википедии, бесплатной энциклопедии

Хотя язык разметки гипертекста ( HTML ) используется с 1991 года, HTML 4.0, вышедший в декабре 1997 года, стал первой стандартизированной версией, в которой международным символам была предоставлена ​​достаточно полная обработка. Когда HTML-документ содержит специальные символы вне диапазона семибитного ASCII информации , стоит учитывать две цели: целостность и универсальное в браузере отображение .

Указание кодировки символов документа [ править ]

Существует два основных способа указать, какая кодировка символов используется в документе.

Во-первых, веб-сервер может включать кодировку символов или " charset" в протоколе передачи гипертекста (HTTP) Content-Type заголовок, который обычно выглядит так: [1]

Тип контента: текст/html;  кодировка = utf-8 

Этот метод дает HTTP-серверу удобный способ изменить кодировку документа в соответствии с согласованием содержимого ; определенное программное обеспечение HTTP-сервера может это сделать, например Apache с модулем mod_charset_lite. [2]

Во-вторых, декларацию можно включить в сам документ.

Для HTML можно включить эту информацию внутри head элемент в верхней части документа: [3]

<  meta   http-equiv  =  "Content-Type"   content  =  "text/html; charset=utf-8"  > 

HTML5 также позволяет следующему синтаксису означать то же самое: [3]

<  мета-   кодировка  =  "utf-8"  > 

У документов XHTML есть третий вариант: выразить кодировку символов через объявление XML следующим образом: [4]

<?xml version="1.0"coding="utf-8"?> 

При использовании этого второго подхода, поскольку кодировка символов не может быть известна до тех пор, пока не будет проанализировано объявление, возникает проблема с определением того, какая кодировка символов используется в документе, включая само объявление. Если кодировка символов является расширением ASCII , то содержимое до самого объявления включительно должно быть чистым ASCII, и это будет работать правильно. Для кодировок символов, которые не являются расширениями ASCII (т. е. не надмножеством ASCII), например UTF-16BE и UTF-16LE , процессор HTML, например веб-браузер, должен иметь возможность анализировать объявление в некоторых случаях через использование эвристики.

Алгоритм обнаружения кодировки [ править ]

Начиная с HTML5, рекомендуемая кодировка — UTF-8 . [3] В спецификации определен «алгоритм анализа кодировки» для определения кодировки символов документа на основе нескольких источников входных данных, включая:

  1. Явные инструкции пользователя
  2. Явный метатег в первых 1024 байтах документа.
  3. Метка порядка байтов (BOM) в первых трех байтах документа.
  4. HTTP Content-Type или другая информация транспортного уровня.
  5. Анализ байтов документа в поисках определенных последовательностей или диапазонов значений байтов, [5] и другие предварительные механизмы обнаружения.

Символы за пределами печатаемого диапазона ASCII (от 32 до 126) обычно отображаются неправильно. Это не представляет особых проблем для англоговорящих пользователей, но другие языки регулярно — а в некоторых случаях всегда — требуют символов, выходящих за пределы этого диапазона. В китайских, японских и корейских ( CJK ) языковых средах, где используется несколько различных многобайтовых кодировок, также часто используется автоматическое обнаружение. Наконец, браузеры обычно позволяют пользователю переопределить неправильную вручную метку кодировки.

На многоязычных веб-сайтах и ​​веб-сайтах на незападных языках все чаще используется UTF-8 , что позволяет использовать одну и ту же кодировку для всех языков. UTF-16 или UTF-32 , которые также можно использовать для всех языков, используются менее широко, поскольку их сложнее обрабатывать в языках программирования, которые предполагают байт-ориентированную расширенную кодировку ASCII, и они менее эффективны для текста с высокая частота использования символов ASCII, что обычно характерно для документов HTML.

Успешный просмотр страницы не обязательно является показателем того, что ее кодировка указана правильно. Если создатель страницы и читатель используют некоторую кодировку символов, специфичную для платформы, а сервер не отправляет никакой идентифицирующей информации, то читатель, тем не менее, увидит страницу так, как задумал создатель, но другие читатели будут на разных платформах или на разных родных языках. не увидит страницу так, как предполагалось.

Разрешенные кодировки [ править ]

Стандарт кодирования WHATWG , на который ссылаются последние стандарты HTML (текущий WHATWG HTML Living Standard, а также ранее конкурирующие W3C HTML 5.0 и 5.1), определяет список кодировок, которые должны поддерживать браузеры. Стандарты HTML запрещают поддержку других кодировок. [6] [7] [8] Стандарт кодирования далее предусматривает, что новые форматы, новые протоколы (даже если используются существующие форматы) и авторы новых документов должны использовать исключительно UTF-8 . [9]

Помимо UTF-8, следующие кодировки явно перечислены в самом стандарте HTML со ссылкой на Стандарт кодирования: [8]

  1. ^ Также указано для TIS-620, ISO-8859-11 и соответствующие этикетки. [9]
  2. ^ Также указано для ASCII, ISO-8859-1 и соответствующие этикетки. [9]
  3. ^ Также указано для ISO-8859-9 и соответствующие этикетки. [9]
  4. ^ Указано с 0xA3A0 как дублирующая кодировка идеографического пространства (U+3000) по соображениям совместимости и, как таковое, исключая U+E5E5 (символ частного использования). [10] [11] Также указывается значение 0x80, принятое в качестве альтернативной кодировки знака евро (U+20AC; см. Windows-936 ). [12] В противном случае следует сопоставления из стандарта 2005 года. [11]
  5. ^ Вариант дополнительного набора символов Гонконга , [13] хотя большинство расширений HKSCS (с ведущими байтами меньше 0xA1) не включаются кодером, а только декодером. [14]
  6. ^ Спецификация включает IBM и NEC , расширения [15] а точнее Windows-31J . [13]
  7. ^ В спецификации используется тот же индекс, что и для Shift JIS (насколько это возможно), т. е. включены расширения NEC. Кана половинной ширины преобразуется кодировщиком в полную ширину. [16] но принимается декодером с использованием escape-последовательности (ESC 0x28 0x49). [17] Shift Out и Shift In (0x0E и 0x0F) полностью исключены для предотвращения атак. [17] [18]
  8. ^ Фактически унифицированный код хангыля (Windows-949), который представляет собой расширенный набор, охватывающий весь блок слогов хангыля . [13] [19]
  9. ^ Указан только для декодирования; Отправка форм из документов с кодировкой UTF-16 должна быть закодирована в UTF-8 . [20]
  10. ^ Для совместимости с развернутым контентом также указано для простого UTF-16 этикетка, [21] хотя метка порядка байтов (BOM), если она присутствует, имеет приоритет над любой меткой. [22] Указан только для декодирования; Отправка форм из документов с кодировкой UTF-16 должна быть закодирована в UTF-8 . [20]
  11. ^ Сопоставляет 0x00–0x7F с U+0000–U+007F и 0x80–0xFF с U+F780–U+F7FF ( диапазон области частного использования ), так что младшие 8 бит кодовой точки всегда соответствуют исходному байту. [23]

Следующие дополнительные кодировки перечислены в Стандарте кодирования, поэтому их поддержка также требуется: [9]

  1. ^ Использует тот же кодер и декодер, что и ISO-8859-8, но не подчиняется поведению визуального порядка, которое используется для документов, помеченных как ISO-8859-8. [24]
  2. ^ Назван КОИ8-У и указан для обоих. KOI8-U и KOI8-RU этикетки; [9] следует за KOI8-RU в позициях 0xAE и 0xBE (т.е. включает Ў/ў ) [25] [26] но КОИ8-У в позициях 0x93–9F. [25]
  3. ^ Также указано для GB2312и соответствующие этикетки. обрабатывается так же, как GB 18030 . В целях декодирования [27] В целях кодирования маркировка GBK (или GB 2312 ) исключает четырехбайтовые коды и отдает предпочтение однобайтовому представлению 0x80 для U+20AC. [10]
  4. ^ В спецификации используется тот же индекс, что и для Shift JIS (если он находится в пределах досягаемости набора кодов EUC 1), т. е. включает расширения NEC. JIS X 0212 включен только для декодирования. [28]

Следующие кодировки перечислены как явные примеры запрещенных кодировок: [8]

Стандарт также определяет декодер «замены», который сопоставляет весь контент, помеченный как определенные кодировки, с символом замены (�), вообще отказываясь его обрабатывать. Это предназначено для предотвращения атак (например, межсайтового сценария ), которые могут использовать разницу между клиентом и сервером в том, какие кодировки поддерживаются, чтобы замаскировать вредоносный контент. [29] Хотя та же проблема безопасности применима к ISO-2022-JP и UTF-16 , которые также позволяют по-разному интерпретировать последовательности байтов ASCII, этот подход не считался для них осуществимым, поскольку они сравнительно чаще используются в развернутом контенте. [30] Данную обработку получают следующие кодировки: [31]

Ссылки на персонажей [ править ]

В дополнение к собственным кодировкам символов, символы также могут быть закодированы как ссылки на символы , которые могут быть числовыми ссылками на символы ( десятичные или шестнадцатеричные ) или ссылками на символьные сущности . Ссылки на символьные сущности также иногда называют именованными сущностями или сущностями HTML для HTML. Использование ссылок на символы в HTML происходит от SGML .

Ссылки на символы HTML [ править ]

Числовая ссылка на символ в HTML ссылается на символ по его универсальному набору символов / Unicode кодовой точке и использует формат

&#nnnn;

или

&#xhhhh;

где nnnn — это кодовая точка в десятичной форме, а hhhh — это кодовая точка в шестнадцатеричной форме. регистре . В документах XML x должен быть в нижнем nnnn могут состоять из или hhhh любого количества цифр и могут включать ведущие нули. В hhhh могут сочетаться прописные и строчные буквы, хотя обычно используется верхний регистр.

Не все веб-браузеры или клиенты электронной почты , используемые получателями HTML-документов, или текстовые редакторы , используемые авторами HTML-документов, смогут отображать все символы HTML. Большинство современных программ способны отображать большую часть или все символы языка пользователя и отображают рамку или другой четкий индикатор для символов, которые они не могут отобразить.

Для кодов от 0 до 127 (исходный 7-битный стандартный набор ASCII) большинство этих символов можно использовать без ссылки на символ. Все коды от 160 до 255 могут быть созданы с использованием имен символьных объектов . Лишь несколько кодов с более высокими номерами могут быть созданы с использованием имен объектов, но все они могут быть созданы с помощью ссылки на символ десятичных чисел.

Ссылки на символьные сущности также могут иметь формат &name;где имя — буквенно-цифровая строка с учетом регистра. Например, «λ» также можно закодировать как &lambda;в HTML-документе. Ссылки на сущность персонажа &lt;, &gt;, &quot; и &amp; предопределены в HTML и SGML, поскольку <, >, " и &уже используются для разграничения разметки. В частности, это не включало XML &apos;(') объект до HTML5 . Список всех именованных ссылок на символьные сущности HTML вместе с версиями, в которых они были представлены, см. в разделе Список ссылок на символьные сущности XML и HTML .

Ненужное использование ссылок на символы HTML может значительно ухудшить читаемость HTML. Если кодировка символов для веб-страницы выбрана правильно, то ссылки на символы HTML обычно требуются только для символов-разделителей разметки, как указано выше, а также для нескольких специальных символов (или вообще не требуется, если Unicode собственная кодировка , такая как UTF-8). используется ). Неправильное экранирование объекта HTML также может открыть уязвимости безопасности для атак путем внедрения, таких как межсайтовый скриптинг . Если атрибуты HTML не заключены в кавычки, некоторые символы, особенно пробелы , такие как пробел и табуляция, должны быть экранированы с помощью сущностей. Другие языки, связанные с HTML, имеют свои собственные методы экранирования символов.

Ссылки на символы XML [ править ]

В отличие от традиционного HTML с его большим диапазоном ссылок на символьные сущности, в XML имеется только пять предопределенных ссылок на символьные сущности. Они используются для экранирования символов, чувствительных к разметке в определенных контекстах: [32]

&amp; & амперсанд U + 0026
&lt; < знак меньше чем U + 003C
&gt; > знак «больше» U + 003E
&quot; " кавычка U + 0022
&apos; ' апостроф U + 0027

Все остальные ссылки на сущности символов должны быть определены, прежде чем их можно будет использовать. Например, использование &eacute;(что дает é, латинскую строчную букву E с острым ударением, U+00E9 в Юникоде) в XML-документе выдаст ошибку, если сущность еще не определена. XML также требует, чтобы x в шестнадцатеричных числовых ссылках быть в нижнем регистре: например &#xA1b скорее, чем &#XA1b. XHTML , являющийся приложением XML, поддерживает набор сущностей HTML, а также предопределенные сущности XML.

См. также [ править ]

Ссылки [ править ]

  1. ^ Филдинг, Р.; Решке, Дж. (июнь 2014 г.), «Тип контента» , в Филдинге, Р.; Решке, Дж. (ред.), Протокол передачи гипертекста (HTTP/1.1): Семантика и контент , IETF , doi : 10.17487/RFC7231 , S2CID   14399078 , получено 30 июля 2014 г.
  2. ^ «Модуль Apache mod_charset_lite» .
  3. ^ Перейти обратно: а б с «Указание кодировки символов документа» , HTML5 , Консорциум World Wide Web , 14 декабря 2017 г. , дата обращения 28 мая 2018 г.
  4. ^ Брей, Т .; Паоли, Дж.; Сперберг-МакКуин, К .; Малер, Э.; Йерго, Ф. (26 ноября 2008 г.), «Пролог и объявление типа документа» , XML , W3C , получено 8 марта 2010 г.
  5. ^ «HTML5 предварительно сканирует поток байтов, чтобы определить его кодировку» .
  6. ^ «8.2.2.3. Кодировки символов» . Стандарт HTML 5.1 . W3C.
  7. ^ «8.2.2.3. Кодировки символов» . Стандарт HTML5 . W3C.
  8. ^ Перейти обратно: а б с «12.2.3.3 Кодировки символов» . HTML Уровень жизни . ЧТОРГ.
  9. ^ Перейти обратно: а б с д Это ж ван Кестерен, Энн . «4.2: Имена и метки» . Стандарт кодирования . ЧТОРГ .
  10. ^ Перейти обратно: а б ван Кестерен, Энн . «10.2.2. Кодер gb18030» . Стандарт кодирования . ЧТОРГ .
  11. ^ Перейти обратно: а б ван Кестерен, Энн . «5. Индексы (§ index gb18030)» . Стандарт кодирования . ЧТОРГ .
  12. ^ ван Кестерен, Энн . «10.2.1. декодер gb18030» . Стандарт кодирования . ЧТОРГ .
  13. ^ Перейти обратно: а б с Фонд Мозилла . «Заметные отличия от именования IANA» . Создайте файлcoding_rs . документы.рс.
  14. ^ ван Кестерен, Энн . «5. Индексы (§ указатель индекса Big5)» . Стандарт кодирования . ЧТОРГ .
  15. ^ ван Кестерен, Энн . «5. Индексы (§ Индекс jis0208)» . Стандарт кодирования . ЧТОРГ .
  16. ^ ван Кестерен, Энн . «5. Индексы (§ Индекс ISO-2022-JP катакана)» . Стандарт кодирования . ЧТОРГ .
  17. ^ Перейти обратно: а б ван Кестерен, Энн . «12.2.1. Декодер ISO-2022-JP» . Стандарт кодирования . ЧТОРГ .
  18. ^ ван Кестерен, Энн . «12.2.2. Кодер ISO-2022-JP» . Стандарт кодирования . ЧТОРГ .
  19. ^ ван Кестерен, Энн . «5. Индексы (§ индекс EUC-KR)» . Стандарт кодирования . ЧТОРГ .
  20. ^ Перейти обратно: а б ван Кестерен, Энн . «4.3. Кодировки вывода» . Стандарт кодирования . ЧТОРГ .
  21. ^ Ван Кестерен, Энн . «14.4. UTF-16LE» . Стандарт кодирования . ЧТОРГ .
  22. ^ ван Кестерен, Энн . «6. Хуки для стандартов (§ декодирование)» . Стандарт кодирования . ЧТОРГ .
  23. ^ Ван Кестерен, Энн . «14.5.x-определяется пользователем» . Стандарт кодирования . ЧТОРГ .
  24. ^ ван Кестерен, Энн . «9. Устаревшие однобайтовые кодировки (§ Примечание)» . Стандарт кодирования . ЧТОРГ .
  25. ^ Перейти обратно: а б ван Кестерен, Энн . «индексная визуализация КОИ8-У» . Стандарт кодирования . ЧТОРГ .
  26. ^ «Ошибка 17053: Поддержка сопоставления KOI8-RU для KOI8-U» . W3C Багзилла . 19 августа 2015 г.
  27. ^ ван Кестерен, Энн . «10.1. ГБК» . Стандарт кодирования . ЧТОРГ .
  28. ^ ван Кестерен, Энн . «5. Индексы (§ Индекс jis0212)» . Стандарт кодирования . ЧТОРГ .
  29. ^ ван Кестерен, Энн . «14.1: замена» . Стандарт кодирования . ЧТОРГ .
  30. ^ ван Кестерен, Энн . «2: Фон безопасности» . Стандарт кодирования . ЧТОРГ .
  31. ^ ван Кестерен, Энн . «4.2: Названия и метки (§ замена)» . Стандарт кодирования . ЧТОРГ .
  32. ^ Брей, Т .; Паоли, Дж.; Сперберг-МакКуин, К .; Малер, Э.; Йерго, Ф. (26 ноября 2008 г.), «Ссылки на символы и сущности» , XML , W3C , получено 8 марта 2010 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 678A8228E8C046F71FE9A4F40FBA420A__1704718320
URL1:https://en.wikipedia.org/wiki/Character_encodings_in_HTML
Заголовок, (Title) документа по адресу, URL1:
Character encodings in HTML - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)