stringtranslate.com

Кодовая страница Windows

Кодовые страницы Windows — это наборы символов или кодовых страниц (известные как кодировки символов в других операционных системах), используемые в Microsoft Windows с 1980-х и 1990-х годов. Кодовые страницы Windows были постепенно заменены, когда в Windows был реализован Unicode , [ необходима ссылка ], хотя они по-прежнему поддерживаются как в Windows, так и на других платформах и по-прежнему применяются при использовании сочетаний клавиш Alt-кода .

Текущие версии Windows поддерживают Unicode , новые приложения Windows должны использовать Unicode (UTF-8), а не 8-битные кодировки символов. [1]

В системах Windows есть две группы системных кодовых страниц: кодовые страницы OEM и Windows-native ("ANSI"). (ANSI — Американский национальный институт стандартов .) Кодовые страницы в обеих этих группах являются расширенными кодовыми страницами ASCII. Дополнительные кодовые страницы поддерживаются стандартными процедурами преобразования Windows, но не используются ни в качестве одного из типов системной кодовой страницы.

Кодовая страница ANSI

Кодовые страницы ANSI (официально называемые «кодовыми страницами Windows» [2] после того, как Microsoft признала прежний термин неверным [3] ) используются для собственных не-Unicode (например, байт-ориентированных ) приложений, использующих графический пользовательский интерфейс в системах Windows. Термин «ANSI» является неверным, поскольку эти кодовые страницы Windows не соответствуют ни одному стандарту ANSI (Американский национальный институт стандартов) ; кодовая страница 1252 была основана на раннем проекте ANSI, который стал международным стандартом ISO 8859-1 , [3] который добавляет еще 32 управляющих кода и место для 96 печатных символов. Среди прочих отличий, кодовые страницы Windows выделяют печатные символы в дополнительное пространство управляющих кодов, делая их в лучшем случае нечитаемыми для операционных систем, соответствующих стандартам.)

Большинство устаревших кодовых страниц "ANSI" имеют номера кодовых страниц в шаблоне 125x. Однако 874 (тайский) и восточноазиатские многобайтовые кодовые страницы "ANSI" ( 932 , 936 , 949 , 950 ), все из которых также используются в качестве кодовых страниц OEM, пронумерованы в соответствии с кодировками IBM, ни одна из которых не идентична кодировкам Windows (хотя большинство из них похожи). Хотя кодовая страница 1258 также используется в качестве кодовой страницы OEM, она является оригинальной для Microsoft, а не расширением существующей кодировки. IBM присвоила свои собственные, другие номера для вариантов Microsoft, они приведены для справки в списках ниже, где это применимо.

Все кодовые страницы Windows 125x, а также 874 и 936, помечены IANA как "Windows - number ", хотя "Windows-936" рассматривается как синоним " GBK ". Кодовая страница Windows 932 вместо этого помечена как "Windows-31J". [4]

Кодовые страницы ANSI Windows, и особенно кодовая страница 1252 , были так названы, поскольку они якобы были основаны на проектах, представленных или предназначенных для ANSI. Однако ANSI и ISO не стандартизировали ни одну из этих кодовых страниц. Вместо этого они либо: [3]

Microsoft назначила около двенадцати типографских и деловых символов (включая, в частности, знак евро , €) в CP1252 кодовым точкам 0x80–0x9F, которые в ISO 8859 назначены управляющим кодам C1 . Эти назначения также присутствуют во многих других кодовых страницах ANSI/Windows в тех же кодовых точках. Windows не использовала управляющие коды C1, поэтому это решение не оказало прямого влияния на пользователей Windows. Однако, если включить информацию в файл, переданный на платформу, соответствующую стандартам, такую ​​как Unix или MacOS, она была невидимой и потенциально разрушительной. [ необходима цитата ]

Кодовая страница OEM

Кодовые страницы OEM ( оригинальный производитель оборудования ) используются консольными приложениями Win32 и виртуальной DOS и могут считаться пережитком DOS и оригинальной архитектуры IBM PC . Отдельный набор кодовых страниц был реализован не только из-за совместимости, но и потому, что шрифты оборудования VGA (и его потомков) предполагают кодировку символов рисования линий , совместимую с кодовой страницей 437. Большинство кодовых страниц OEM разделяют многие кодовые точки, особенно для небуквенных символов, со второй (не ASCII) половиной CP437.

Типичная кодовая страница OEM, в своей второй половине, не похожа ни на одну кодовую страницу ANSI/Windows даже приблизительно. Тем не менее, две однобайтовые кодовые страницы фиксированной ширины (874 для тайского и 1258 для вьетнамского ) и четыре многобайтовые кодовые страницы CJK ( 932 , 936 , 949 , 950 ) используются как в качестве кодовых страниц OEM, так и в качестве кодовых страниц ANSI. Кодовая страница 1258 использует комбинированные диакритические знаки , поскольку для вьетнамского языка требуется более 128 комбинаций букв и диакритических знаков. Это контрастирует с VISCII , который заменяет некоторые управляющие коды C0 (т. е. ASCII).

История

Ранние компьютерные системы имели ограниченное хранилище и ограничивали количество бит, доступных для кодирования символа . Хотя более ранние фирменные кодировки имели меньше, Американский стандартный код для обмена информацией (ASCII) остановился на семи битах: этого было достаточно для кодирования 96-элементного подмножества символов, используемых в США. Поскольку восьмибитные байты стали преобладать, Microsoft (и другие) расширили репертуар до 224, чтобы обрабатывать множество других применений, таких как символы рисования коробок. Необходимость предоставления предварительно составленных символов для рынков Западной Европы и Южной Америки потребовала другого набора символов: Microsoft установила принцип кодовых страниц, по одной для каждого алфавита. Для сегментных шрифтов, используемых в большинстве стран Африки, Америки, Южной и Юго-Восточной Азии, Ближнего Востока и Европы, символу нужен всего один байт, но для идеографических наборов, используемых в остальном мире , требуются два или более байтов . Модель кодовой страницы не могла справиться с этой задачей.

С конца 1990-х годов программное обеспечение и системы приняли Unicode в качестве предпочтительного формата кодировки символов: Unicode предназначен для обработки миллионов символов. Все текущие продукты Microsoft и интерфейсы прикладных программ используют Unicode внутри себя, [ требуется цитата ], но некоторые приложения продолжают использовать кодировку по умолчанию [ требуется разъяснение ] «локали» компьютера при чтении и записи текстовых данных в файлы или стандартный вывод. [ требуется цитата ] Поэтому все еще могут встречаться файлы, которые читаются и воспринимаются в одной части мира, но являются непонятными mojibake в другой.

UTF-8, UTF-16

Microsoft приняла кодировку Unicode (сначала ныне устаревшую UCS-2 , которая тогда была единственной кодировкой Unicode), т. е. UTF-16 для всех своих операционных систем , начиная с Windows NT, но дополнительно поддерживает UTF-8 (он же CP_UTF8) с Windows 10 версии 1803. [ 5] UTF-16 уникально кодирует все символы Unicode в базовой многоязыковой плоскости (BMP) с использованием 16 бит, но остальной Unicode (например, эмодзи ) кодируется 32-битным (четырехбайтовым) кодом — в то время как остальная часть отрасли ( Unix-подобные системы и веб), а теперь и Microsoft выбрали UTF-8 (который использует один байт для 7-битного набора символов ASCII , два или три байта для других символов в BMP и четыре байта для оставшихся).

Список

Существуют следующие кодовые страницы Windows:

Windows-серия 125x

Все эти девять кодовых страниц являются расширенными кодировками ASCII 8-бит SBCS и были разработаны Microsoft для использования в качестве кодовых страниц ANSI в Windows. Они широко известны по своим зарегистрированным в IANA [6] именам как windows-<number>, но иногда их также называют cp<number>, "cp" для "кодовой страницы". Все они используются в качестве кодовых страниц ANSI; Windows-1258 также используется в качестве кодовой страницы OEM.

Серия Windows-125x включает девять кодовых страниц ANSI и в основном охватывает письменности из Европы и Западной Азии с добавлением Вьетнама . Системные кодировки для тайского и восточноазиатских языков были пронумерованы для соответствия аналогичным кодовым страницам IBM и используются как кодовые страницы ANSI и OEM; они рассматриваются в следующих разделах.

Кодовые страницы DOS

Они также основаны на ASCII. Большинство из них включены для использования в качестве кодовых страниц OEM; кодовая страница 874 также используется в качестве кодовой страницы ANSI.

Восточноазиатские многобайтовые кодовые страницы

Они часто отличаются от кодовых страниц IBM с тем же номером: кодовые страницы 932, 949 и 950 лишь частично соответствуют кодовым страницам IBM с тем же номером, в то время как номер 936 использовался IBM для другой кодировки упрощенного китайского языка, которая сейчас устарела, а Windows-951, как часть кладжа , не имеет отношения к IBM-951. Эквивалентные кодовые страницы IBM приведены во втором столбце. Кодовые страницы 932, 936, 949 и 950/951 используются как кодовые страницы ANSI и OEM в рассматриваемых локалях.

Кодовые страницы Microsoft для китайского, японского и корейского языков обычно не соответствуют в точности, а иногда и вовсе не соответствуют кодовым страницам IBM с тем же номером.

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

Кодовые страницы EBCDIC

Кодовые страницы, связанные с Unicode

Кодовые страницы совместимости с Macintosh

Кодовые страницы ISO 8859

Кодовые страницы ITU-T

Кодовые страницы KOI8

Проблемы, возникающие при использовании кодовых страниц

Microsoft настоятельно рекомендует использовать Unicode в современных приложениях, но многие приложения или файлы данных по-прежнему зависят от устаревших кодовых страниц.

Смотрите также

Ссылки

  1. ^ "Unicode и наборы символов". Microsoft. 2023-06-13 . Получено 2024-05-27 .
  2. ^ "Code Pages". 2016-03-07. Архивировано из оригинала 2016-03-07 . Получено 2021-05-26 .
  3. ^ abc "Глоссарий терминов, используемых на этом сайте". 8 декабря 2018 г. Архивировано из оригинала 2018-12-08. Термин "ANSI", используемый для обозначения кодовых страниц Windows, является исторической ссылкой, но в настоящее время является неправильным наименованием, которое продолжает сохраняться в сообществе Windows. Источником этого является тот факт, что кодовая страница Windows 1252 изначально была основана на проекте ANSI, который стал стандартом Международной организации по стандартизации (ISO) 8859-1. "Приложения ANSI" обычно являются ссылкой на не-Unicode или основанные на кодовых страницах приложения.
  4. ^ "Character Sets". www.iana.org . Архивировано из оригинала 2021-05-25 . Получено 2021-05-26 .
  5. ^ Хилом (14 ноября 2017 г.). «Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される» [Возможность сделать UTF-8 системной локалью, добавленной в Windows 10 Insider Preview].スラド(на японском языке). Архивировано из оригинала 11 мая 2018 г. Проверено 10 мая 2018 г.
  6. ^ "Наборы символов". IANA. Архивировано из оригинала 2016-12-03 . Получено 2019-04-07 .
  7. ^ Microsoft. "Windows 1250". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  8. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01250". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  9. ^ Microsoft. "Windows 1251". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  10. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01251". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  11. ^ Microsoft. "Windows 1252". Архивировано из оригинала 2013-05-04 . Получено 2014-07-06 .
  12. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01252". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  13. ^ Microsoft. "Windows 1253". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  14. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01253". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  15. ^ Microsoft. "Windows 1254". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  16. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01254". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  17. ^ Microsoft. "Windows 1255". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  18. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01255". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  19. ^ Microsoft. "Windows 1256". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  20. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01256". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  21. ^ Microsoft. "Windows 1257". Архивировано из оригинала 2013-03-16 . Получено 2014-07-06 .
  22. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01257". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  23. ^ Microsoft. "Windows 1258". Архивировано из оригинала 2013-10-25 . Получено 2014-07-06 .
  24. ^ IBM. "Информационный документ о кодовой странице SBCS CPGID 01258". Архивировано из оригинала 2014-07-14 . Получено 2014-07-06 .
  25. ^ IBM. "Информационный документ о кодовой странице SBCS - CPGID 00437". Архивировано из оригинала 2016-06-09 . Получено 2014-07-04 .
  26. ^ "IBM-943 и IBM-932". IBM Knowledge Center . IBM. Архивировано из оригинала 2018-08-18 . Получено 2020-07-08 .
  27. ^ "Converter Explorer: ibm-1373_P100-2002". Демонстрация ICU . Международные компоненты для Unicode . Архивировано из оригинала 2021-05-26 . Получено 2020-06-27 .
  28. ^ "Идентификаторы кодированных наборов символов – CCSID 5471". IBM Globalization . IBM . Архивировано из оригинала 2014-11-29.
  29. ^ Julliard, Alexandre (11 марта 2021 г.). "dump_krwansung_codepage: построить таблицу Korean Wansung из файла KSX1001". make_unicode: создать файлы кодовой страницы .c из описаний ftp.unicode.org . Wine Project . Архивировано из оригинала 26.05.2021 . Получено 14.03.2021 .
  30. ^ IBM. "Информационный документ о кодовой странице SBCS - CPGID 00037". Архивировано из оригинала 2014-07-14 . Получено 2014-07-04 .
  31. ^ Стил, Шон (2005-09-12). "Кодовая страница 21027 "Extended/Ext Alpha Lowercase"". MSDN . Архивировано из оригинала 2019-04-06 . Получено 2019-04-06 .
  32. ^ abcde "Идентификаторы кодовых страниц". docs.microsoft.com . Архивировано из оригинала 2019-04-07 . Получено 2019-04-07 .
  33. ^ abc Mozilla Foundation . "Связь с кодовыми страницами Windows". Crate encoding_rs . Docs.rs.
  34. ^ abcde "Идентификаторы кодовых страниц". Microsoft Developer Network . Microsoft . 2014. Архивировано из оригинала 2016-06-19 . Получено 2016-06-19 .
  35. ^ abcde "Веб-кодировки - Internet Explorer - Кодировки". WHATWG Wiki . 2012-10-23. Архивировано из оригинала 2016-06-20 . Получено 2016-06-20 .
  36. ^ Foller, Antonin (2014) [2011]. "Западноевропейская (IA5) кодировка - наборы символов Windows". WUtils.com - Онлайновая веб-утилита и справка . Motobit Software. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
  37. ^ Фоллер, Антонин (2014) [2011]. «Немецкая (IA5) кодировка – Windows charsets». WUtils.com – Онлайновая веб-утилита и справка . Программное обеспечение Motobit. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
  38. ^ Foller, Antonin (2014) [2011]. "Шведская (IA5) кодировка - Windows charsets". WUtils.com - Онлайновая веб-утилита и справка . Motobit Software. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
  39. ^ Фоллер, Антонин (2014) [2011]. "Норвежская (IA5) кодировка - наборы символов Windows". WUtils.com - Онлайновая веб-утилита и справка . Программное обеспечение Motobit. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
  40. ^ Foller, Antonin (2014) [2011]. "US-ASCII кодировка - Windows charsets". WUtils.com - Онлайн веб-утилита и справка . Motobit Software. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
  41. ^ Нечаев, Валентин (2013) [2001]. "Обзор вселенной 8-битных кириллических кодировок". Архивировано из оригинала 2016-12-05 . Получено 2016-12-05 .

Внешние ссылки