Набор символов Windows для латинского алфавита
Windows-1252 или CP-1252 ( кодовая страница Windows 1252) — устаревшая однобайтовая кодировка символов [2] , которая используется по умолчанию (как «кодовая страница ANSI») в Microsoft Windows в Северной и Южной Америке , Западной Европе , Океании и большей части Африки . [3]
Первоначально он был таким же, как ISO 8859-1 , но с выходом Windows 2.0 начал отличаться, добавив дополнительные символы в диапазоне от 0x80 до 0x9F ( hex ) (стандарты ISO резервируют этот диапазон для управляющих кодов C1 ). Среди известных дополнительных символов — фигурные кавычки и все печатные символы из ISO 8859-15 .
Это наиболее используемая однобайтовая кодировка символов в мире. Хотя почти все веб-сайты теперь используют многобайтовую кодировку символов UTF-8 , по состоянию на июль 2024 года 1,2% [4] веб-сайтов заявили о ISO 8859-1 , который рассматривается как Windows-1252 всеми современными браузерами (как того требует стандарт HTML5 [5] ), плюс 0,3% заявили Windows-1252 напрямую, [4] [6] в общей сложности 1,5%. Некоторые страны или языки показывают более высокое использование, чем в среднем по миру, в 2024 году в Бразилии, согласно использованию веб-сайтов, использование составило 3,4%, [7] а в Германии — 2,7%. [8] [9] (это суммы деклараций ISO-8859-1 и CP-1252).
Имя
В Windows он известен под номером кодовой страницы 1252 и под одобренным IANA именем «windows-1252».
Исторически фраза «кодовая страница ANSI» использовалась в Windows для обозначения кодировок, отличных от DOS; предполагалось, что большинство из них будут стандартами ANSI , такими как ISO-8859-1 . Несмотря на то, что Windows-1252 была первой и самой популярной кодовой страницей, названной так в терминологии Microsoft Windows, эта кодовая страница никогда не была стандартом ANSI. Microsoft поясняет: «Термин ANSI, используемый для обозначения кодовых страниц Windows, является исторической ссылкой, но в настоящее время является неправильным наименованием, которое продолжает сохраняться в сообществе Windows». [10]
LaTeX может вводить Windows-1252, используя inputenc.sty с параметром ansinew (и с недавних пор cp1252 ). [11] [12]
IBM использует кодовую страницу 1252 ( CCSID 1252 и расширенный CCSID знака евро 5348) для Windows-1252. [13] [14] [15]
В базе данных Oracle он называется «WE8MSWIN1252» . [16]
История
- Первая версия кодовой страницы использовалась в Microsoft Windows 1.0 . Она соответствовала стандарту ISO-8859-1 (включая неопределенные кодовые точки 0xD7 и 0xF7, поскольку на тот момент их не было в стандарте).
- Вторая версия кодовой страницы была введена в Microsoft Windows 2.0 . В этой версии определены кодовые точки 0xD7, 0xF7, 0x91 и 0x92.
- Третья версия кодовой страницы была представлена в Microsoft Windows 3.1 . Она определила все кодовые точки, используемые в финальной версии, за исключением знака евро и пары символов Z с кароном .
- Окончательная версия (показана ниже) была представлена в Microsoft Windows 98 .
Начиная с 1990-х годов многие продукты Microsoft , которые могли генерировать HTML, включали символы, эксклюзивные для Windows-1252, но помечали кодировку как ISO-8859-1, ASCII или необъявленную. [ требуется ссылка ] Символы, эксклюзивные для Windows-1252, отображались некорректно в операционных системах, отличных от Windows (часто как вопросительные знаки). [17] [18] В частности, типографские кавычки — фигурные варианты стандартных прямых апострофов и кавычек в US-ASCII — обычно использовались в файлах, созданных в приложениях Windows, таких как Microsoft Word, из-за функции интеллектуальных кавычек , которая может автоматически преобразовывать прямые апострофы и кавычки в фигурные варианты. [19] Чтобы исправить это, к 2000 году большинство веб-браузеров и почтовых клиентов обрабатывали наборы символов ISO-8859-1 и US-ASCII как Windows-1252 [ требуется ссылка ] — такое поведение теперь требуется спецификацией HTML5. [5] Необъявленные кодировки в HTML также считаются Windows-1252. [20] [21]
Хотя Windows NT поддерживала Unicode и пыталась поощрять программы использовать его, она предоставляла только 16-битные кодовые единицы UCS-2 / UTF-16 , несмотря на существующую поддержку других многобайтовых кодировок символов. Поскольку многие приложения предпочитали использовать 8-битные строки, Windows-1252 оставалась самой популярной кодировкой в Windows даже после того, как в нее была добавлена поддержка UTF-16. Поддержка Unicode в Windows со временем улучшилась, и поддержка UTF-8 стала доступна начиная с Windows 10 .
Макет кодовой страницы
В следующей таблице показан Windows-1252. Отличия от ISO-8859-1 имеют номер кодовой точки Unicode под символом, основанный на сопоставлении Unicode.org Windows-1252 с "наилучшим соответствием". Подсказка, обычно доступная только при наведении указателя непосредственно справа от символа, показывает имя кодовой точки Unicode и десятичный код Alt .
Согласно информации на веб-сайтах Microsoft и Unicode Consortium, позиции 81, 8D, 8F, 90 и 9D не используются; однако Windows API MultiByteToWideChar
сопоставляет их с соответствующими кодами управления C1 . Сопоставление «наилучшего соответствия» также документирует это поведение. [22]
Связанные кодировки
Расширения OS/2
Операционная система OS /2 поддерживает кодировку под названием Кодовая страница 1004 ( CCSID 1004) или «Windows Extended». [27] [28] Это в основном соответствует кодовой странице 1252, за исключением некоторых управляющих символов C0 , которые заменяются диакритическими символами.
Расширения MS-DOS (редко)
Существует редко используемая, но полезная графическая расширенная кодовая страница 1252, где коды от 0x00 до 0x1f позволяют рисовать рамки, как это используется в таких приложениях, как MSDOS Edit и Codeview. Одним из приложений, использующих эту кодовую страницу, была утилита образа диска Intel Corporation Install/Recovery середины/конца 1995 года. Эти программы были написаны для ее машин P6 User Test Program (пример для США [33] ). Она использовалась исключительно в тогдашнем регионе EMEA (Европа, Ближний Восток и Африка). Со временем программы были изменены для использования кодовой страницы 850 .
Вариант Palm OS
Каждое устройство Palm OS поддерживает один язык и одну кодировку символов в зависимости от его локали. [34]
Для таких языков, как английский и французский, Palm OS использует пользовательскую кодировку символов на основе Windows-1252. Для японского языка она вместо этого использует многобайтовую кодировку символов на основе кодовой страницы 932. Независимо от локали системы, все символы в диапазоне от 0x00 до 0x7F гарантированно будут одинаковыми, за исключением 0x5D, который является знаком йены в японском языке, и обратной косой черты во всех остальных. [34]
Palm OS 3.1 внесла несколько изменений в кодировку символов для лучшего соответствия Windows-1252: [35]
- Специальные глифы Palm OS «штрих сочетания клавиш» (0x9D) и «штрих команды» (0x9E) были скопированы в 0x16 и 0x17, чтобы гарантировать, что они находятся в диапазоне, гарантированно соответствующем различным локалям. [35] Начиная с Palm OS 3.3, 0x16 и 0x17 являются единственными кодовыми точками для этих символов, [36] оставляя 0x9D и 0x9E неопределенными. [37]
- Числовое пространство (0x80) и горизонтальное многоточие (0x85) были скопированы в 0x19 и 0x18 (соответственно), чтобы гарантировать, что они находятся в диапазоне, гарантированно соответствующем различным локалям. [35] [36]
- Знак евро был добавлен в позицию 0x80, заменив то, что раньше было цифровым пробелом. [36]
- Масти игральных карт были скопированы в шрифт Symbol 9, [35] хотя их оригинальные кодовые точки остались действительными. [36] [37]
Ниже приведен вариант Windows-1252, используемый Palm OS 3.3 и более поздними версиями для английского языка и нескольких других локалей. [36] Python дает ему palmos
метку, описывая его как кодировку для Palm OS 3.5. [38] [39] Отличия от Windows-1252 заключаются в их кодовой точке Unicode.
Смотрите также
Примечания
- ^ До Palm OS 3.1 символ в кодовой точке 0x80 был U+2007 NUMERIC SPACE; начиная с Palm OS 3.1, 0x80 — это знак евро, а 0x19 — это U+2007 NUMERIC SPACE. [36]
- ^ Начиная с Palm OS 3.1, этот символ также дублируется в 0x18. [35] [36]
- ^ До Palm OS 3.3 эта кодовая точка была эксклюзивным символом Palm OS «штрих быстрого доступа»; начиная с Palm OS 3.3 эта кодовая точка не определена. [35] [36]
- ^ До Palm OS 3.3 эта кодовая точка была эксклюзивным символом Palm OS «командный штрих»; начиная с Palm OS 3.3 эта кодовая точка не определена. [35] [36]
Ссылки
- ^ Наборы символов, Управление по распределению адресов в Интернете (IANA), 2018-12-12
- ^ "Encoding. Living Standard". WHATWG . 13 июня 2024 г. § 9. Устаревшие однобайтовые кодировки . Получено 28.06.2024 .
- ^ Karl-Bridge-Microsoft (2021-10-26). "Кодовые страницы - приложения Win32". learn.microsoft.com . Получено 2024-10-09 .
- ^ ab "Исторические тенденции в статистике использования кодировок символов для веб-сайтов, декабрь 2023 г.". w3techs.com . Получено 2024-07-19 .
- ^ ab "Encoding". WHATWG . 27 января 2015 г., раздел 5.2 Имена и метки. Архивировано из оригинала 4 февраля 2015 г. Получено 4 февраля 2015 г.
- ^ "Часто задаваемые вопросы". w3techs.com .
- ^ "Распределение кодировок символов среди веб-сайтов, использующих Бразилию". W3Techs . Архивировано из оригинала 4 апреля 2024 г. Получено 2024-07-19 .
- ^ "Распределение кодировок символов среди веб-сайтов, использующих .de". W3Techs . Архивировано из оригинала 4 апреля 2024 г. Получено 2024-07-19 .
- ^ "Распределение кодировок символов среди веб-сайтов, использующих немецкий язык". w3techs.com . Получено 2023-01-16 .
- ^ Виссинк, Кэти (5 апреля 2002 г.). «Unicode и Windows XP» (PDF) . Microsoft . стр. 1. Архивировано из оригинала (PDF) 4 февраля 2015 г. . Получено 4 февраля 2015 г. .
- ^ "LaTeX News, Issue 28" (PDF; 379 КБ) . Проект LaTeX. Апрель 2018 г. Получено 27 июля 2024 г.
- ^ "Inputenc – Принимать различные входные кодировки". Проект LaTeX. 2024-02-08 . Получено 2024-07-27 .
- ^ "Информационный документ о кодовой странице 1252". IBM. 30 сентября 1997 г. Архивировано из оригинала 2016-03-03.
- ^ "Информационный документ CCSID 1252". IBM. Архивировано из оригинала 2016-03-26.
- ^ "Информационный документ CCSID 5348". IBM. Архивировано из оригинала 29.11.2014.
- ^ "Руководство по установке клиента базы данных". Oracle . Получено 2021-02-14 .
- ^ Texin, Tex. «Сравнение символов в Windows-1252, ISO-8859-1, ISO-8859-15». I18nQA.com .
- ^ ван Эмден, Ева (28 января 2011 г.). «Как сделать типографские кавычки в HTML». vancouvereditor.com . Получено 7 января 2024 г. Если
вы используете типографские кавычки, не указав правильную кодировку символов для вашего HTML-файла, некоторые из ваших зрителей увидят вопросительные знаки, квадратики или другие безумные символы вместо красивых фигурных кавычек, которые вы хотели им показать.
- ^ "Умные кавычки в Word". Поддержка Microsoft . Microsoft . Получено 7 января 2024 г. .
- ^ "NetWare Web Search: Understanding Character Set Encodings". Документация Novell . Novell.
если документ не содержит значение кодировки CHARSET, то кодировкой по умолчанию для HTML-документов является ISO-8859-1, также известная как Latin1. Кодировкой по умолчанию для простых текстовых документов является US-ASCII.
- ^ Наблюдаемое поведение в Chrome, в некоторых браузерах это может быть UTF-8. [ оригинальное исследование? ]
- ^ ab "Unicode mappings of Windows-1252 with 'Best Fit'". Unicode . Архивировано из оригинала 4 февраля 2015 . Получено 4 февраля 2015 .
- ↑ Кодовая страница 01252 (PDF) , IBM, 1998, архивировано (PDF) из оригинала 27 октября 2023 г.
- ↑ Кодовая страница (CPGID) 01252 (txt) , IBM, 1998, архивировано из оригинала 8 апреля 2023 г.
- ^ Международные компоненты для Unicode (ICU), ibm-1252_P100-2000.ucm, 2002-12-03
- ^ Международные компоненты для Unicode (ICU), ibm-5348_P100-1997.ucm, 2002-12-03
- ^ "Информационный документ о кодовой странице 1004". Архивировано из оригинала 2015-06-25.
- ^ "Информационный документ CCSID 1004". Архивировано из оригинала 2016-03-26.
- ^ "Кодовая страница 01004" (PDF) . IBM . Архивировано (PDF) из оригинала 2015-07-08.(версия на основе Windows 3.1 версии Windows-1252)
- ^ Кодовая страница CPGID 01004 (pdf) (PDF) , IBM
- ^ Кодовая страница CPGID 01004 (txt), IBM
- ^ Borgendale, Ken (2001). "Кодовая страница 1004 - Windows Extended". Кодовые страницы OS/2 по номеру . Архивировано из оригинала 2018-05-13 . Получено 2018-05-13 .(версия основана на текущей версии Windows-1252)
- ^ Storaasli, Olaf (1996). "Производительность решателей уравнений NASA в приложениях вычислительной механики" (PDF) . Производительность решателей уравнений NASA в приложениях вычислительной механики . NASA. doi :10.2514/6.1996-1505. S2CID 15711051. Архивировано из оригинала (PDF) 2019-05-03.
- ^ ab "Глава 13: Локализованные приложения". Palm OS Programmer's Companion (PDF) . Palm Computing Platform. 16 марта 2000 г. стр. 321.
- ^ abcdefg «Приложение B: Руководство по совместимости». Справочник Palm OS SDK (PDF) . Palm Computing Platform. 16 марта 2000 г. С. 1181–1182.
- ^ abcdefghi Валлей, Линус. «Наборы символов Palm Pilot и сопоставления Юникода». GNU-перекодирование . Datorföreningen vid Lunds Universitet и Lunds Tekniska Högskola . Проверено 10 октября 2023 г.
- ^ abc Parker, Greg. "Palm OS Built-in Fonts". Sealie Software . Получено 10 октября 2023 г.
- ^ "кодеки — Реестр кодеков и базовые классы (§ Текстовые кодировки)". Стандартная библиотека Python — Документация Python 3.9.4 . Python Software Foundation .
- ^ ab Mullender, Sjoerd (13 июля 2002 г.). "Python Character Mapping Codec for Palm OS 3.5". Исходное дерево CPython . Python Software Foundation . Получено 9 декабря 2021 г.
Внешние ссылки
- Кодовые таблицы Microsoft для Windows-1252 («Кодовая страница 1252 Windows Latin 1 (ANSI)»)
- Таблица соответствия Unicode и определение кодовой страницы с наилучшими соответствиями для Windows-1252