Из Википедии, бесплатной энциклопедии
  (Перенаправлено с кодовой страницы OEM )
Перейти к навигации Перейти к поиску

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

В системах Windows существует две группы кодовых страниц: OEM и собственные кодовые страницы Windows («ANSI»). Кодовые страницы в обеих этих группах являются расширенными кодовыми страницами ASCII .

Кодовая страница ANSI[ редактировать ]

Кодовые страницы ANSI (официально называемые «кодовыми страницами Windows» [1] после того, как Microsoft приняла неправильный термин [2] ), используются для собственных не-Unicode (скажем, ориентированных на байты ) приложений, использующих графический пользовательский интерфейс в системах Windows. «ANSI» - неправильное название, потому что поведение не совсем соответствует стандарту ANSI [ какой? ] и потому, что в эти 8-битные кодовые страницы включены некоторые кодировки, отличные от стандартов ANSI. [ необходима цитата ]

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

Все 125x кодовые страницы Windows, а также 874 и 936, помечены Internet Assigned Numbers Authority (IANA) как « номер Windows», хотя «Windows-936» рассматривается как синоним « GBK ». Кодовая страница Windows 932 вместо этого помечена как «Windows-31J». [3]

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

  • Расширения стандартных наборов, таких как ISO 8859 и различных национальных стандартов (например, Windows-1252 и ISO-8859-1 ),
  • Основные их модификации (делающие их несовместимыми в разной степени, например, Windows-1250 и ISO-8859-2 )
  • Отсутствие параллельного кодирования (например, Windows-1257 против ISO-8859-4 ; ISO-8859-13 был введен намного позже). Кроме того, Windows-1251 не следует ни ISO-стандартизированному ISO-8859-5, ни преобладающему в то время KOI-8 .

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

Кодовая страница OEM[ редактировать ]

В кодовые страницы OEM ( Original Equipment Manufacturer ) используются консольных 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).

История [ править ]

Первоначально компьютерные системы и языки системного программирования не делали различия между символами и байтами : для сегментных сценариев, используемых в большей части Африки, Америки, Южной и Юго-Восточной Азии, Ближнего Востока и Европы, для символа требуется всего один байт. , но для идеографических наборов, используемых в остальном мире , необходимы два или более байта . Впоследствии это привело к большой путанице. Программное обеспечение и системы Microsoft, предшествующие линейке Windows NT, являются примерами этого, поскольку они используют кодовые страницы OEM и ANSI, которые не делают различий.

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

UTF-8, UTF-16 [ править ]

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

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

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

Серия Windows-125x [ править ]

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

Кодовые страницы DOS [ править ]

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

  • 437  - IBM PC US, 8-битный расширенный ASCII SBCS . [25] Известная как OEM-US, кодировка основного встроенного шрифта видеокарт VGA.
  • 708  - арабский, расширенный ISO 8859-6 (ASMO 708)
  • 720  - арабский, сохраняя символы рисования прямоугольников на их обычных местах
  • 737  - «MS-DOS греческий». Сохраняет все символы рисования прямоугольников. Популярнее, чем 869.
  • 775  - "MS-DOS Baltic Rim"
  • 850  - «MS-DOS Latin 1». Полный (реорганизованный) репертуар ISO 8859-1 .
  • 852  - «MS-DOS Latin 2»
  • 855  - "Кириллица MS-DOS". В основном используется для южнославянских языков . Включает (реорганизованный) репертуар ISO-8859-5 . Не путать с cp866.
  • 857  - "MS-DOS Турецкий"
  • 858  - Западноевропейский со знаком евро
  • 860  - "Португальский MS-DOS"
  • 861  - "Исландский MS-DOS"
  • 862  - «Еврейский MS-DOS»
  • 863  - "MS-DOS Французская Канада"
  • 864  - арабский
  • 865  - "MS-DOS Nordic"
  • 866  - "MS-DOS Кириллица русская", cp866. Единственная кодовая страница исключительно OEM (а не ANSI или оба), включенная в качестве устаревшей кодировки в стандарт кодирования WHATWG для HTML5 .
  • 869  - «MS-DOS Greek 2», IBM869. Полный (переработанный) репертуар ISO 8859-7 .
  • 874  - Тайский , также используемый в качестве кодовой страницы ANSI, расширяет ISO 8859-11 (и, следовательно, TIS-620 ) несколькими дополнительными символами из Windows-1252. Соответствует кодовой странице IBM 1162 (IBM-874 аналогична, но имеет другие расширения).

Многобайтовые кодовые страницы Восточной Азии [ править ]

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

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

Кодовые страницы EBCDIC [ править ]

  • 37 - IBM EBCDIC США-Канада, 8-битный SBCS [30]
  • 500 - латиница 1
  • 870 - IBM870
  • 875 - cp875
  • 1026 - EBCDIC Турецкий
  • 1047 - IBM01047 - Латиница 1
  • 1140 - IBM01141
  • 1141 - IBM01141
  • 1142 - IBM01142
  • 1143 - IBM01143
  • 1144 - IBM01144
  • 1145 - IBM01145
  • 1146 - IBM01146
  • 1147 - IBM01147
  • 1148 - IBM01148
  • 1149 - IBM01149
  • 20273  - EBCDIC Германия
  • 20277  - EBCDIC Дания / Норвегия
  • 20278  - EBCDIC Финляндия / Швеция
  • 20280  - EBCDIC Италия
  • 20284  - EBCDIC Латинская Америка / Испания
  • 20285  - EBCDIC Соединенное Королевство
  • 20290  - EBCDIC японский
  • 20297  - EBCDIC Франция
  • 20420  - EBCDIC арабский
  • 20423  - EBCDIC Греческий
  • 20424  - x-EBCDIC-KoreanExtended
  • 20833  - корейский
  • 20838  - EBCDIC тайский
  • 21025  - EBCDIC кириллица
  • 20871  - EBCDIC исландский
  • 20880  - EBCDIC кириллица
  • 20905  - EBCDIC Турецкий
  • 21027  - японский EBCDIC (неполный, [31] не рекомендуется) [32]

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

  • 1200  - Unicode (BMP по ISO 10646, UTF-16LE ). Доступно только для управляемых приложений [33]
  • 1201  - Юникод ( UTF-16BE ). Доступно только для управляемых приложений [33]
  • 12000  - УТФ-32 . Доступно только для управляемых приложений [33]
  • 12001  - utf-32 с прямым порядком байтов. Доступно только для управляемых приложений [33]
  • 65000  - Юникод ( UTF-7 )
  • 65001  - Юникод ( UTF-8 )

Кодовые страницы совместимости с Macintosh [ править ]

  • 10000  - Apple Macintosh Роман
  • 10001  - Apple Macintosh японский
  • 10002  - Apple Macintosh китайский (традиционный) (BIG-5)
  • 10003  - Apple Macintosh корейский
  • 10004  - Apple Macintosh на арабском языке
  • 10005  - Apple Macintosh на иврите
  • 10006  - Apple Macintosh греческий
  • 10007  - Apple Macintosh кириллица
  • 10008  - Apple Macintosh китайский (упрощенный) (GB 2312)
  • 10010  - Apple Macintosh на румынском языке
  • 10017  - Apple Macintosh украинский
  • 10021  - Apple Macintosh Thai
  • 10029  - Apple Macintosh Roman II / Центральная Европа
  • 10079  - Исландский Apple Macintosh
  • 10081  - Apple Macintosh турецкий
  • 10082  - Apple Macintosh хорватский

Кодовые страницы ISO 8859 [ править ]

  • 28591  - ISO-8859-1  - Latin-1 (эквивалент IBM: 819)
  • 28592  - ISO-8859-2  - Latin-2
  • 28593  - ISO-8859-3  - Latin-3 или южноевропейский
  • 28594  - ISO-8859-4  - Latin-4 или североевропейский
  • 28595  - ISO-8859-5  - Латиница / кириллица
  • 28596  - ISO-8859-6  - Латинский / арабский
  • 28597  - ISO-8859-7  - Латинский / греческий
  • 28598  - ISO-8859-8  - Латинский / Иврит
  • 28599  - ISO-8859-9  - Latin-5 или турецкий
  • 28600  - ISO-8859-10  - Latin-6
  • 28601  - ISO-8859-11  - Латинский / тайский
  • 28602  - ISO-8859-12  - зарезервировано для латыни / деванагари, но не поддерживается (не поддерживается)
  • 28603  - ISO-8859-13  - Latin-7 или Baltic Rim
  • 28604  - ISO-8859-14  - Latin-8 или кельтский
  • 28605  - ISO-8859-15  - Latin-9
  • 28606  - ISO-8859-16  - Latin-10 или Юго-Восточная Европа
  • 38596  - ISO-8859-6- I  - Латинский / арабский (логический двунаправленный порядок)
  • 38598  - ISO-8859-8- I  - Латинский / иврит (логический двунаправленный порядок)

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

  • 20105  - 7-битный IA5 IRV (западноевропейский) [34] [35] [36]
  • 20106  - 7-битный IA5 немецкий (DIN 66003) [34] [35] [37]
  • 20107  - 7-битный IA5 шведский (SEN 850200 C) [34] [35] [38]
  • 20108  - 7-битный норвежский IA5 (NS 4551-2) [34] [35] [39]
  • 20127 - 7-битный US-ASCII [34] [35] [40]
  • 20261 - T.61 (T.61-8bit)
  • 20269 - ISO-6937

Кодовые страницы KOI8 [ править ]

  • 20866 - Русский - КОИ8-Р
  • 21866 - украинский - КОИ8-У ( в некоторых вариантах - КОИ8 -РУ ) [41]

Другие кодовые страницы [ править ]

  • 20924 - IBM00924 - IBM EBCDIC Latin 1 / Открытая система (1047 + символ евро)
  • 20936 - x-cp20936 - упрощенный китайский (GB2312); Китайский упрощенный (GB2312-80)
  • 20949 - x-cp20949 - корейский Wansung

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

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

  • Программы должны знать, какую кодовую страницу использовать, чтобы правильно отображать содержимое файлов (до Unicode). Если программа использует неправильную кодовую страницу, она может отображать текст как моджибаке .
  • Используемая кодовая страница может отличаться на разных машинах, поэтому файлы (до Unicode), созданные на одной машине, могут быть нечитаемыми на другой.
  • Данные часто неправильно помечены кодовой страницей или вообще не помечены, что затрудняет определение правильной кодовой страницы для чтения данных.
  • Эти кодовые страницы Microsoft в разной степени отличаются от некоторых стандартов и реализаций других поставщиков. Это не проблема Microsoft как таковая , как это происходит со всеми поставщиками, но отсутствие согласованности делает взаимодействие с другими системами ненадежным в некоторых случаях.
  • Использование кодовых страниц ограничивает набор символов, которые могут использоваться.
  • Символы, выраженные в неподдерживаемой кодовой странице, могут быть преобразованы в вопросительные знаки (?) Или другие заменяющие символы или в более простую версию (например, удаление диакритических знаков из буквы). В любом случае исходный персонаж может быть утерян.

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

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

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

  1. ^ Кодовые страницы , MSDN
  2. ^ a b MSDN: Глоссарий терминов
  3. ^ Список наборов символов IANA
  4. ^ «Extensible Markup Language (XML) 1.1 (второе издание): кодировки символов» . W3C . 29 сентября 2006 . Дата обращения 5 октября 2020 .
  5. ^ хилом (2017-11-14). «Windows 10 の Insider Preview で シ ス テ ム ロ ケ ル を UTF-8 に す る シ ョ ン が 追加 さ れ» [возможность сделать UTF-8 системной локалью, добавленной в Windows 10 Insider Preview].ス ラ ド(на японском языке) . Проверено 10 мая 2018 .
  6. ^ «Наборы символов» . IANA.
  7. ^ Microsoft. «Windows 1250» . Проверено 6 июля 2014 .
  8. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01250" . Проверено 6 июля 2014 .
  9. ^ Microsoft. «Окна 1251» . Проверено 6 июля 2014 .
  10. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01251" . Проверено 6 июля 2014 .
  11. ^ Microsoft. «Окна 1252» . Проверено 6 июля 2014 .
  12. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01252" . Проверено 6 июля 2014 .
  13. ^ Microsoft. «Окна 1253» . Проверено 6 июля 2014 .
  14. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01253" . Проверено 6 июля 2014 .
  15. ^ Microsoft. «Окна 1254» . Проверено 6 июля 2014 .
  16. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01254" . Проверено 6 июля 2014 .
  17. ^ Microsoft. «Windows 1255» . Проверено 6 июля 2014 .
  18. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01255" . Проверено 6 июля 2014 .
  19. ^ Microsoft. «Окна 1256» . Проверено 6 июля 2014 .
  20. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01256" . Проверено 6 июля 2014 .
  21. ^ Microsoft. «Окна 1257» . Проверено 6 июля 2014 .
  22. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01257" . Проверено 6 июля 2014 .
  23. ^ Microsoft. «Окна 1258» . Проверено 6 июля 2014 .
  24. ^ IBM. "Информационный документ кодовой страницы SBCS CPGID 01258" . Проверено 6 июля 2014 .
  25. ^ IBM. «Информационный документ кодовой страницы SBCS - CPGID 00437» . Проверено 4 июля 2014 .
  26. ^ "IBM-943 и IBM-932" . Центр знаний IBM . IBM.
  27. ^ "Информационный документ CCSID 1370" . Архивировано из оригинала на 2016-03-27.
  28. ^ "Converter Explorer: ibm-1373_P100-2002" . Демонстрация интенсивной терапии . Международные компоненты для Unicode .
  29. ^ «Идентификаторы кодированного набора символов - CCSID 5471» . IBM Globalization . IBM . Архивировано из оригинала на 2014-11-29.
  30. ^ IBM. «Информационный документ кодовой страницы SBCS - CPGID 00037» . Проверено 4 июля 2014 .
  31. Стил, Шон (12 сентября 2005 г.). «Кодовая страница 21027« Расширенный / Расширенный строчный алфавит » » . MSDN .
  32. ^ Идентификаторы кодовой страницы
  33. ^ a b c d Список идентификаторов кодовых страниц
  34. ^ a b c d e "Идентификаторы кодовой страницы" . Сеть разработчиков Microsoft . Microsoft . 2014. Архивировано 19 июня 2016 года . Проверено 19 июня 2016 .
  35. ^ a b c d e "Веб-кодировки - Internet Explorer - Кодировки" . WHATWG Wiki . 2012-10-23. Архивировано 20 июня 2016 года . Проверено 20 июня 2016 .
  36. ^ Фоллер, Антонин (2014) [2011]. «Западноевропейская (IA5) кодировка - кодировки Windows» . WUtils.com - онлайн-утилита и справка . Программное обеспечение Motobit. Архивировано 20 июня 2016 года . Проверено 20 июня 2016 .
  37. ^ Фоллер, Антонин (2014) [2011]. «Немецкая (IA5) кодировка - кодировки Windows» . WUtils.com - онлайн-утилита и справка . Программное обеспечение Motobit. Архивировано 20 июня 2016 года . Проверено 20 июня 2016 .
  38. ^ Фоллер, Антонин (2014) [2011]. «Шведская (IA5) кодировка - кодировки Windows» . WUtils.com - онлайн-утилита и справка . Программное обеспечение Motobit. Архивировано 20 июня 2016 года . Проверено 20 июня 2016 .
  39. ^ Фоллер, Антонин (2014) [2011]. «Норвежская (IA5) кодировка - кодировки Windows» . WUtils.com - онлайн-утилита и справка . Программное обеспечение Motobit. Архивировано 20 июня 2016 года . Проверено 20 июня 2016 .
  40. ^ Фоллер, Антонин (2014) [2011]. «Кодировка US-ASCII - кодировки Windows» . WUtils.com - онлайн-утилита и справка . Программное обеспечение Motobit. Архивировано 20 июня 2016 года . Проверено 20 июня 2016 .
  41. ^ Нечаев, Валентин (2013) [2001]. «Обзор вселенной 8-битных кодировок кириллицы» . Архивировано 5 декабря 2016 года . Проверено 5 декабря 2016 .

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

  • Справочник по API поддержки национальных языков (NLS) . Таблица, показывающая кодовые страницы ANSI и OEM для каждого языка (из веб-архива, поскольку Microsoft удалила исходную страницу)
  • Регистрация имен с кодировкой IANA
  • Таблица сопоставления Unicode для кодовых страниц Windows
  • Отображение кодовых страниц Windows в Юникоде с "наилучшим соответствием"