Термин «кодовая страница» возник из мэйнфреймовых систем IBM на основе EBCDIC [1], но Microsoft , SAP [ 2 ] и Oracle Corporation [ 3] входят в число поставщиков, которые используют этот термин. Большинство поставщиков идентифицируют свои собственные наборы символов по имени. В случае, когда существует множество наборов символов (как в IBM), идентификация наборов символов с помощью номера является удобным способом их различения. Первоначально номера кодовых страниц ссылались на номера страниц в руководстве по стандартным наборам символов IBM [4] [5] [6] условие, которое не соблюдалось в течение длительного времени. Поставщики, которые используют систему кодовых страниц, назначают свой собственный номер кодовой страницы кодировке символов, даже если она более известна под другим именем; например, UTF-8 были присвоены номера страниц 1208 в IBM, 65001 в Microsoft и 4110 в SAP.
Hewlett-Packard использует похожую концепцию в своей операционной системе HP-UX и своем протоколе Printer Command Language [7] (PCL) для принтеров (как для принтеров HP, так и нет). Однако терминология отличается: то, что другие называют набором символов , HP называет набором символов , а то, что IBM или Microsoft называют кодовой страницей , HP называет кодом набора символов . HP разработала серию наборов символов, [8] [9] каждый со связанным кодом набора символов, для кодирования как своих собственных наборов символов, так и наборов символов других поставщиков.
Множество наборов символов побуждает многих поставщиков рекомендовать Unicode .
Система нумерации кодовых страниц
IBM представила концепцию систематического назначения небольшого, но глобально уникального 16-битного числа каждой кодировке символов, с которой может столкнуться компьютерная система или набор компьютерных систем. Происхождение IBM этой схемы нумерации отражено в том факте, что наименьшие (первые) числа назначаются вариациям кодировки EBCDIC IBM, а немного большие числа относятся к вариациям расширенной кодировки ASCII IBM , используемой в оборудовании ПК.
С выпуском PC DOS версии 3.3 (и почти идентичной MS-DOS 3.3) IBM представила систему нумерации кодовых страниц обычным пользователям ПК, поскольку номера кодовых страниц (и фраза «кодовая страница») использовались в новых командах, чтобы позволить устанавливать кодировку символов, используемую всеми частями ОС, систематическим образом. [10]
После того, как IBM и Microsoft прекратили сотрудничество в 1990-х годах, обе компании вели список назначенных номеров кодовых страниц независимо друг от друга, что привело к некоторым конфликтующим назначениям. По крайней мере, один сторонний поставщик ( Oracle ) также имеет свой собственный список числовых назначений. [3] Текущие назначения IBM перечислены в их репозитории CCSID , в то время как назначения Microsoft задокументированы в MSDN . [11] Кроме того, список имен и приблизительных сокращений IANA ( Internet Assigned Numbers Authority ) для установленных кодовых страниц на любой конкретной машине Windows можно найти в реестре на этой машине (эта информация используется программами Microsoft, такими как Internet Explorer ).
Большинство известных кодовых страниц, за исключением страниц для языков CJK и вьетнамского языка , умещают все свои кодовые точки в восемь бит и не требуют ничего, кроме сопоставления каждой кодовой точки одному символу; более того, не используются такие методы, как комбинирование символов, сложные сценарии и т. д.
Текстовый режим стандартного ( совместимого с VGA ) графического оборудования ПК построен на использовании 8-битной кодовой страницы, хотя возможно использовать две одновременно с некоторой жертвой глубины цвета, и до восьми может храниться в адаптере дисплея для легкого переключения. [12] Существовал выбор шрифтов сторонних кодовых страниц, которые можно было загрузить в такое оборудование. Однако теперь для поставщиков операционных систем стало обычным делом предоставлять свои собственные системы кодирования и рендеринга символов, которые работают в графическом режиме и полностью обходят это аппаратное ограничение. Однако система ссылки на кодировки символов по номеру кодовой страницы остается применимой как эффективная альтернатива строковым идентификаторам, таким как те, которые указаны IETF и IANA для использования в различных протоколах, таких как электронная почта и веб-страницы.
Связь с ASCII
Большинство кодовых страниц, используемых в настоящее время, являются надмножествами ASCII , 7-битного кода, представляющего 128 управляющих кодов и печатных символов. В далеком прошлом 8-битные реализации кода ASCII устанавливали верхний бит в ноль или использовали его в качестве бита четности при передаче данных по сети. Когда верхний бит стал доступен для представления символьных данных, в общей сложности можно было представить 256 символов и управляющих кодов. Большинство поставщиков (включая IBM) использовали этот расширенный диапазон для кодирования символов, используемых различными языками и графическими элементами, что позволяло имитировать примитивную графику на устройствах вывода только текста. Для этих «расширенных наборов символов ASCII» не существовало формального стандарта, и поставщики называли варианты кодовыми страницами, как IBM всегда делала для вариантов кодировок EBCDIC.
Связь с Unicode
Unicode — это попытка включить все символы из всех ныне и исторически используемых человеческих языков в единый перечень символов (фактически одну большую единую кодовую страницу), устраняя необходимость различать разные кодовые страницы при обработке текста, хранящегося в цифровом виде. Unicode пытается сохранить обратную совместимость со многими устаревшими кодовыми страницами, копируя некоторые кодовые страницы 1:1 в процессе проектирования. Явной целью проектирования Unicode было обеспечение возможности преобразования в обе стороны между всеми распространенными устаревшими кодовыми страницами, хотя эта цель не всегда достигалась. Некоторые поставщики, а именно IBM и Microsoft, анахронично назначали номера кодовых страниц кодировкам Unicode. Это соглашение позволяет использовать номера кодовых страниц в качестве метаданных для определения правильного алгоритма декодирования при обнаружении двоичных хранимых данных.
Кодовые страницы IBM
Кодовые страницы на основе EBCDIC
Эти кодовые страницы используются IBM в наборах символов EBCDIC для мэйнфреймов . [13]
1 – США WP, Оригинал
2 – США
3 – Бухгалтерский учет в США, версия A
4 – США
5 – США
6 – Латинская Америка
7 – Германия FR / Австрия
8 – Германия FR
9 – Франция, Бельгия
10 – Канада (английский)
11 – Канада (французский)
12 – Италия
13 – Нидерланды
14 – Испания
15 – Швейцария (французский)
16 – Швейцария (французский/немецкий)
17 – Швейцария (немецкий)
18 – Швеция/Финляндия
19 – Швеция/Финляндия WP, версия 2
20 – Дания/Норвегия
21 – Бразилия
22 – Португалия
23 – Великобритания
24 – Великобритания
25 – Япония (латиница)
26 – Япония (латиница)
27 – Греция (латиница)
29 – Исландия
30 – Турция
31 – Южная Африка
32 – Чехословакия (чешский/словацкий)
33 – Чехословакия
34 – Чехословакия
35 – Румыния
36 – Румыния
37 – США/Канада - CECP (то же самое с евро: 1140)
37-2 – настоящая кодовая страница APL 3279, используемая C/370. Она очень близка к 1047, за исключением инвертированных каретки и не-знака. IBM официально не признает ее, хотя SHARE указал на ее существование. [14]
38 – США ASCII
39 – Великобритания/Израиль
40 – Великобритания
251 – Китай
252 – Польша
254 – Венгрия
256 – Международный № 1 (заменен на 500)
257 – Международный №2
258 – Международный №3
259 – Символы, Набор 7
260 – Канадский французский - 116
264 – Расширенная обработка поезда и текста печати
273 – Германия FR/Австрия - CECP (то же самое с евро: 1141)
274 – Старая бельгийская кодовая страница
275 – Бразилия - CECP
276 – Канада (французский) - 94
277 – Дания, Норвегия - CECP (то же самое с евро: 1142)
278 – Финляндия, Швеция - CECP (то же самое с евро: 1143)
279 – Французский - 94 [14]
280 – Италия - CECP (то же самое с евро: 1144)
281 – Япония (латиница) - CECP
282 – Португалия - CECP
283 – Испания - 190 [14]
284 – Испания/Латинская Америка - CECP (то же самое с евро: 1145)
285 – Соединенное Королевство - CECP (то же самое с евро: 1146)
286 – Австрия / Германия FR Альтернативный
287 – Дания/Норвегия Альтернатива
288 – Финляндия/Швеция Альтернатива
289 – Испания Альтернатива
290 – Японский (катакана) расширенный
293 – АПЛ
297 – Франция (то же самое с евро: 1147) [14]
298 – Япония (катакана)
300 – Япония (кандзи) DBCS (для JIS X 0213)
310 – Графический выход APL/TN
320 – Венгрия
321 – Югославия
322 – Турция
330 – Международный №4
340 – EBCDIC, OCR (то же, что и 893, заменено 892 и 893)
351 – GDDM по умолчанию
352 – Возможность печати и публикации
353 – BCDIC-A
354 – BCDIC-B
355 – стандартная опция PTTC/BCD
357 – опция PTTC/BCD H
358 – Вариант переписки PTTC/BCD
359 – PTTC/BCD вариант монокорпуса
360 – PTTC/BCD Duocase опция
361 – EBCDIC Издательская Международная
363 – Символы, набор 8
382 – EBCDIC Publishing Austria, Германия FR Alternate
383 – EBCDIC Publishing Бельгия
384 – EBCDIC Издательство Бразилия
385 – EBCDIC Publishing Canada (французский)
386 – EBCDIC Publishing Дания, Норвегия
387 – EBCDIC Publishing Финляндия, Швеция
388 – EBCDIC Издательство Франция
389 – EBCDIC Издательство Италия
390 – EBCDIC Publishing Япония (латиница)
391 – EBCDIC Издательство Португалия
392 – EBCDIC Publishing Испания, Филиппины
393 – EBCDIC Publishing Latin America (испаноязычный)
394 – EBCDIC Publishing China (Гонконг), Великобритания, Ирландия
395 – EBCDIC Publishing Австралия, Новая Зеландия, США, Канада (английский)
396 – Специальные предложения BookMaster
410 – Кириллица (ревизии: 880, 1025, 1154)
420 – арабский
421 – Магриб/Французский
423 – греческий (заменен 875)
424 – Иврит (код бюллетеня)
425 – Арабский/Латинский для OS/390 Open Edition
435 – Телетекст изоморфный
500 – Международный № 5 (ECECP; заменяет 256) (то же самое с евро: 1148)
803 – Набор символов иврита A (старый код)
829 – Хост математических символов - Издательское дело
830 – Математический формат
831 – Португалия (альтернативный) (то же, что и 37)
833 – Корейский расширенный (SBCS)
834 – Корейский хангыль (KSC5601; DBCS с УДК)
835 – Традиционный китайский DBCS
836 – Упрощенный китайский расширенный
837 – Упрощенный китайский DBCS
838 – Тайский с низкими оценками и акцентированными символами (то же самое с евро: 1160)
839 – Тайский DBCS
870 – Latin 2 (то же самое с евро: 1153) (ревизия: 1110)
871 – Исландия (то же самое с евро: 1149) [14]
875 – Греческий (заменяет 423)
880 – Кириллица (ревизия 410) (ревизии: 1025, 1154)
881 – США - 5080 Графическая система
882 – Великобритания - 5080 Графическая система
883 – Швеция - 5080 Графическая система
884 – Германия - 5080 Графическая система
885 – Франция - 5080 Графическая система
886 – Италия - 5080 Графическая система
887 – Япония - 5080 Графическая система
888 – Франция AZERTY - 5080 Графическая система
889 – Таиланд
890 – Югославия
892 – EBCDIC, OCR А
893 – EBCDIC, OCR B
905 – Латинский 3
918 – Урду двуязычный
924 – Латинский 9
930 – Япония MIX (290 + 300) (то же самое с евро: 1390)
931 – Япония МИКС (37 + 300)
933 – Корея MIX (833 + 834) (то же самое с евро: 1364)
935 – упрощенный китайский MIX (836 + 837) (то же самое с евро: 1388)
937 – Традиционный китайский MIX (37 + 835) (то же самое с евро: 1371)
939 – Япония MIX (1027 + 300) (то же самое с евро: 1399)
1001 – МИКР
1002 – Совместимость с EBCDIC DCF версии 2
1003 – EBCDIC DCF, подмножество US Text
1005 – Изоморфная текстовая коммуникация EBCDIC
1007 – арабский EBCDIC (XCOM2)
1024 – EBCDIC T.61
1025 – Кириллица, многоязычная (то же самое с евро: 1154) (Ревизия 880)
1026 – EBCDIC Турция (Latin 5) (то же самое, что и евро: 1155) (заменяет 905 в этой стране)
1027 – Японский (латинский) расширенный (JIS X 0201 Extended)
1028 – EBCDIC Издательский иврит
1030 – Японский (катакана) расширенный
1031 – Японский (латиница) расширенный
1032 – MICR, E13-B Комбинированный
1033 – MICR, CMC-7 комбинированный
1037 – Корея - Графическая система 5080/6090
1039 – Совместимость с GML
1047 – Латинский 1/Открытые системы [14]
1068 – Совместимость с DCF
1069 – Латинский 4
1070 – США/Канада Версия 0 (Кодовая страница 37 Версия 0)
1071 – Германия FR / Австрия (кодовая страница 273 версия 0)
1072 – Бельгия (кодовая страница 274 версия 0)
1073 – Бразилия (кодовая страница 275 версия 0)
1074 – Дания, Норвегия (кодовая страница 277 версия 0)
1075 – Финляндия, Швеция (кодовая страница 278 версия 0)
1076 – Италия (кодовая страница 280 версия 0)
1077 – Япония (латиница) (кодовая страница 281 версия 0)
1078 – Португалия (кодовая страница 282 версия 0)
1079 – Испания / Латинская Америка Версия 0 (Кодовая страница 284 Версия 0)
1080 – Соединенное Королевство (кодовая страница 285 версия 0)
1081 – Франция Версия 0 (Кодовая страница 297 Версия 0)
1082 – Израиль (иврит)
1083 – Израиль (иврит)
1084 – International#5 Версия 0 (Кодовая страница 500 Версия 0)
1085 – Исландия (кодовая страница 871 версия 0)
1087 – Набор символов
1091 – Модифицированные символы, набор 7
1093 – Логотип IBM [15]
1097 – Фарси двуязычный
1110 – Латинский 2 (Ревизия 870 г.)
1112 – Балтийский многоязычный (то же самое с евро: 1156)
1113 – Латинский 6
1122 – Эстония (то же самое с евро: 1157)
1123 – кириллица, Украина (то же самое с евро: 1158)
1130 – вьетнамский (то же самое с евро: 1164)
1132 – Лаосский EBCDIC
1136 – Хитачи Катакана
1137 – Деванагари EBCDIC
1140 – США, Канада и т.д. ECECP (то же самое без евро: 37) (Традиционная китайская версия: 1159)
1141 – Австрия, Германия ECECP (то же самое без евро: 273)
1142 – Дания, Норвегия ECECP (то же самое без евро: 277)
1143 – Финляндия, Швеция ECECP (то же самое без евро: 278)
1144 – Италия ECECP (то же самое без евро: 280)
1145 – Испания, Латинская Америка (испанский) ECECP (то же самое без евро: 284)
1146 – UK ECECP (то же самое без евро: 285)
1147 – Франция ECECP с евро (то же самое без евро: 297)
1148 – Международный ECECP с евро (то же самое без евро: 500)
1149 – Исландский ECECP с евро (то же самое без евро: 871)
1150 – Корейский расширенный с символами в виде коробки
1151 – Упрощенный китайский расширенный с символами в рамке
1152 – Традиционный китайский расширенный с квадратными иероглифами
1153 – Latin 2 Multilingual с евро (то же самое без евро: 870)
1154 – кириллица, многоязычная с евро (то же самое без евро: 1025; более старая версия — * 1166)
1155 – Турция с евро (то же самое без евро: 1026) (то же самое с лирой: 1175)
1156 – Baltic Multi с евро (то же самое без евро: 1112)
1157 – Эстония с евро (то же самое без евро: 1122)
1158 – Кириллица, Украина с евро (то же самое без евро: 1123)
1388 – упрощенный китайский MIX (то же самое без евро: 935) (836 + 837 + евро)
1390 – упрощенный китайский MIX Япония MIX (то же самое без евро: 930) (290 + 300 + евро)
1399 – Япония MIX (1027 + 300 + евро) (то же самое без евро: 939)
Кодовые страницы DOS
Эти кодовые страницы используются IBM в ее операционной системе PC DOS . Эти кодовые страницы изначально были встроены непосредственно в аппаратное обеспечение текстового режима графических адаптеров, используемых с IBM PC и его клонами, включая оригинальные адаптеры MDA и CGA, наборы символов которых можно было изменить только путем физической замены микросхемы ПЗУ, содержащей шрифт. Интерфейс этих адаптеров (эмулируемый всеми более поздними адаптерами, такими как VGA) обычно ограничивался однобайтовыми наборами символов всего с 256 символами в каждом шрифте/кодировке (хотя VGA добавил частичную поддержку для немного больших наборов символов).
301 – IBM-PC Япония (Кандзи) DBCS
437 – Оригинальная кодовая страница оборудования IBM PC
872 – Кириллица с евро (то же самое без евро: 855 )
874 – тайский с низкотональными знаками и древними символами (конфликтующий идентификатор с Windows 874; версия с евро: 1161 Версия Windows: IBM 1162 )
949 – корейский (расширенный вансунг (ks_c_5601-1987)) ( 1088 + 951 ) (конфликтующий идентификатор с Windows 949 (унифицированный код хангыль); версия Windows — IBM 1363)
951 – корейский DBCS (код IBM KS) (конфликтующий идентификатор с Windows 951, взлом Windows 950 с сопоставлениями Unicode для некоторых символов PUA Unicode, найденных в HKSCS, на основе имени файла)
1034 – Применение принтера – Транспортная этикетка, комплект № 2
1040 – Корейский расширенный
1041 – Японский расширенный (JIS X 0201 Extended)
1042 – Упрощенный китайский расширенный
1043 – Традиционный китайский расширенный
1044 – Применение принтера – Транспортная этикетка, комплект № 1
При работе со старым оборудованием, протоколами и форматами файлов часто возникает необходимость в поддержке этих кодовых страниц, однако для новых проектов приветствуются более новые системы кодирования, в частности Unicode.
Кодовые страницы DOS обычно хранятся в файлах .CPI. [16] [17] [18] [19] [20]
Кодовые страницы IBM AIX
Эти кодовые страницы используются IBM в ее операционной системе AIX . Они эмулируют несколько наборов символов, а именно те, которые разработаны для использования в соответствии с ISO, например, UNIX-подобные операционные системы.
1382 – EUC упрощенный китайский (DBCS PC GB 2312-80)
1383 – EUC упрощенный китайский ( 367 + 1382 )
Кодовая страница 819 идентична Latin-1, ISO/IEC 8859-1 , и с немного измененными командами позволяет машинам MS-DOS использовать эту кодировку. Она использовалась с мини-компьютерами IBM AS/400.
Кодовые страницы IBM OS/2
Эти кодовые страницы используются IBM в ее операционной системе OS/2 .
Эти кодовые страницы используются IBM при эмуляции наборов символов Microsoft Windows . Большинство этих кодовых страниц имеют тот же номер, что и кодовые страницы Microsoft, хотя они не совсем идентичны. Некоторые кодовые страницы, однако, являются новыми от IBM, а не разработаны Microsoft.
1400 – ISO 10646 UCS-BMP (на основе Unicode 6.0) [23]
1401 – ISO 10646 UCS-SMP (на основе Unicode 6.0) [23]
1402 – ISO 10646 UCS-SIP (на основе Unicode 6.0) [23]
1414 – ISO 10646 UCS-SSP (на основе Unicode 4.0) [23]
1445 – IBM AFP PUA № 1
1446 – ISO 10646 UCS-PUP15 (на основе Unicode 4.0) [23]
1447 – ISO 10646 UCS-PUP16 (на основе Unicode 4.0) [23]
1448 – UCS-BMP (общий УДК)
1449 – IBM PUA по умолчанию
Кодовые страницы Microsoft
Кодовые страницы Windows
Эти кодовые страницы используются корпорацией Microsoft в ее собственной операционной системе Windows. Корпорация Microsoft определила ряд кодовых страниц, известных как кодовые страницы ANSI (первая из них, 1252, была основана на апокрифическом проекте ANSI того, что стало ISO 8859-1 ). Кодовая страница 1252 основана на ISO 8859-1, но использует диапазон 0x80-0x9F для дополнительных печатных символов, а не управляющие коды C1 из ISO 6429, упомянутые в ISO 8859-1. [24] Некоторые из других частично основаны на других частях ISO 8859, но часто переставлены, чтобы приблизиться к 1252.
Microsoft рекомендует новым приложениям использовать UTF-8 или UCS-2/UTF-16 вместо этих кодовых страниц. [25]
Кодовые страницы DBCS
Эти кодовые страницы представляют кодировки символов DBCS для различных языков CJK. В операционных системах Microsoft они используются как кодовые страницы "OEM" и "Windows" для соответствующей локали.
Эти кодовые страницы используются корпорацией Microsoft в ее операционной системе MS-DOS. Корпорация Microsoft называет их кодовыми страницами OEM, поскольку они были определены производителями оригинального оборудования , лицензировавшими MS-DOS для распространения со своим оборудованием, а не корпорацией Microsoft или организацией по стандартизации. Большинство этих кодовых страниц имеют тот же номер, что и эквивалентные кодовые страницы IBM, хотя некоторые из них не совсем идентичны. [26]
Следующие номера кодовых страниц специфичны для Microsoft Windows. IBM может использовать другие номера для этих кодовых страниц. Они эмулируют несколько наборов символов, а именно те, которые разработаны для использования в соответствии с ISO, [ необходимо разъяснение ], например, UNIX-подобные операционные системы.
HP разработала ряд наборов символов (каждый со своим связанным кодом набора символов) для кодирования либо своих собственных наборов символов, либо наборов символов других поставщиков. Обычно это 7-битные наборы символов, которые при перемещении в более высокую часть и связывании с набором символов ASCII составляют 8-битные наборы символов.
Собственные наборы символов HP
Набор символов 0E — расширение HP Roman — 7-битный набор символов с акцентированными буквами (кодируется IBM как кодовая страница 1050 )
Набор символов 0G — HP 7-битный немецкий
Набор символов 0L — HP 7-битная линия ПК (кодируется IBM как кодовая страница 1055 )
Набор символов 0M — HP Math-7
Набор символов 0T — HP Thai-8
Набор символов 1S — HP 7-битный испанский
Набор символов 1U — HP 7-битный Gothic Legal (кодируется IBM как кодовая страница 1052 )
Набор символов 4Q — HP Line Draw (кодируется IBM как кодовая страница 1056)
Набор символов 18U — PC-853 Latin 3 (практически то же самое, что и кодовая страница 853 )
Набор символов 19L — Windows 98 Baltic (практически то же самое, что и кодовая страница 1257 )
Набор символов 19M — Символ Windows
Набор символов 19U — Windows 3.1 Latin 1 (практически то же самое, что и кодовая страница 1252 )
Набор символов 20U — PC-860 Португалия (практически то же самое, что и кодовая страница 860 )
Набор символов 21U — PC-861 Исландия (практически то же самое, что и кодовая страница 861 )
Набор символов 23U — PC-863 Канада - французский (практически такой же, как кодовая страница 863 )
Набор символов 24Q — PC-польская Мазовия (практически то же самое, что и кодировка Мазовия )
Набор символов 25U — PC-865 Дания/Норвегия (практически то же самое, что и кодовая страница 865 )
Набор символов 26U — PC-775 Latin 7 (практически то же самое, что и кодовая страница 775 )
Набор символов 27Q — PC-8 PC Nova (практически то же самое, что и PC Nova )
Набор символов 27U — ПК латышский русский (также известен как 866-латышский)
Набор символов 28U — ПК литовский/русский (практически такой же, как кодовая страница 774 )
Набор символов 29U — PC-772 литовский/русский (практически такой же, как кодовая страница 772 )
Кодовые страницы от других поставщиков
Эти кодовые страницы являются независимыми назначениями сторонних поставщиков. Поскольку исходная кодовая страница IBM PC ( номер 437 ) не была разработана для международного использования, появилось несколько частично совместимых вариантов, специфичных для страны или региона.
Эти кодовые страницы не являются официальными ни для IBM, ни для Microsoft, и почти ни одна из них не упоминается как используемый набор символов IANA. Номера, назначенные этим кодовым страницам, являются произвольными и могут конфликтовать с зарегистрированными номерами, используемыми IBM или Microsoft. Некоторые из них могут предшествовать переключению кодовых страниц, добавленному в DOS 3.3.
100 – аппаратная страница шрифтов DOS Hebrew (не от IBM; HDOS ) [34]
706 – MS-DOS Server Арабский Sakhr (Не от IBM; Sakhr Software от MSX Computers)
707 – MS-DOS Арабский Sakhr (Не от IBM; Sakhr Software от MSX Computers)
711 – Расширенная арабская нафита для MS-DOS (не от IBM)
714 – MS-DOS Арабский Сакр (не от IBM)
715 – MS-DOS Арабский APTEC (не от IBM)
721 – MS-DOS Арабский Nafitha International (не от IBM)
768 – Арабский Аль-Араби (не от IBM)
770 – DOS эстонский, латышский, литовский [38] (Из литовского Lika Software; [39] Литовский национальный стандарт RST 1095-89)
771 — DOS Литовский/Кириллица — KBL [40] (от литовского Lika Software [39] )
772 – DOS Литовский/Кириллический [41] (Из литовского Lika Software; [39] Литовский LST 1284:1993 Национальный стандарт; принят IBM как кодовая страница 1119 )
773 — DOS Latin-7 — KBL (от литовской компании Lika Software)
774 – DOS Литовский [42] (Из литовского Lika Software; [39] Литовский LST 1283:1993 Национальный стандарт; принят IBM как кодовая страница 1118 )
775 – DOS Latin-7 Baltic Rim (от литовского Lika Software; [39] Литовский национальный стандарт LST 1590-1; принят IBM и Microsoft как кодовая страница 775 )
776 – DOS Литовский (расширенный CP770) [43] (Из литовского Lika Software [39] )
777 – DOS акцентированный литовский (старый) (расширенный CP773) — KBL [43] (Из литовского программного обеспечения Lika [39] )
778 – DOS акцентированный литовский (расширенный CP775) [43] (Из литовского программного обеспечения Lika [39] )
881 – Latin 1 (Не от IBM; AST Premium Exec DOS 5.0 [35] [36] [37] ) (конфликтующий идентификатор с IBM EBCDIC 881)
882 – Latin 2 (ISO 8859-2) (Не от IBM; то же, что и кодовая страница 912; AST Premium Exec DOS 5.0 [35] [36] [37] ) (конфликтующий идентификатор с IBM EBCDIC 882)
883 – Latin 3 (Не от IBM; AST Premium Exec DOS 5.0 [35] [36] [37] ) (конфликтующий идентификатор с IBM EBCDIC 883)
884 – Latin 4 (не от IBM; AST Premium Exec DOS 5.0 [35] [36] [37] ) (конфликтующий идентификатор с IBM EBCDIC 884)
885 – Latin 5 (не от IBM; AST Premium Exec DOS 5.0 [35] [36] [37] ) (конфликтующий идентификатор с IBM EBCDIC 885)
895 – Чешский (Каменицкий) , (Не от IBM; конфликтующий идентификатор с IBM CP895 — 7-битный EUC Japanese Roman)
896 – DOS Polish (Mazovia) (Не от IBM; конфликтующий идентификатор с IBM CP896 — 7-битная EUC Japanese Katakana)
900 – DOS русский (русский MS-DOS 5.0 LCD.CPI)
928 – греческий (на принтерах Star [45] ); то же, что и греческий национальный стандарт ELOT 928 (не от IBM; конфликтующий идентификатор с IBM CP928 — упрощенный китайский PC DBCS)
999 – DOS Serbo-Croatian I (не от IBM); также известен как PC Nova и CroSCII; нижняя часть — JUSI.B1.002, верхняя часть — кодовая страница 437; поддерживает словенский и сербохорватский языки (латиница)
1001 – арабский (на принтерах Star [45] ) (Не от IBM; конфликтующий идентификатор с IBM CP1001 — MICR)
1261 – Windows Korean IBM-1261 LMBCS-17, аналогичный 1363
1270 – Windows Саами
1300 – ANSI [PTS-DOS 6.70, а не 6.51] (не от IBM; конфликтующий идентификатор с IBM EBCDIC 1300 — Generic Bar Code/OCR-B)
2001 – Литовский KBL (на принтерах Star [45] ); то же, что и кодовая страница 771
3001 – Эстонский 1 (на принтерах Star [45] ); то же, что и кодовая страница 1116
3002 – Эстонский 2 (на принтерах Star [45] ); то же, что и кодовая страница 922
3011 – латышский 1 (на принтерах Star [45] ); то же, что и кодовая страница 437-латышский
3012 – Латвийский-2 (на принтерах Star [45] ); то же, что и кодовая страница 866-Латвийский (Латвийский национальный стандарт RST 1040-90)
3021 – болгарский (на принтерах Star [45] ); то же, что и MIK
3031 – иврит (на принтерах Star [45] ); то же, что и кодовая страница 862
3041 – мальтийский (на принтерах Star [45] ); то же, что и ISO 646 мальтийский
3840 – IBM-Russian (на принтерах Star [45] ); почти то же самое, что и CP 866
3841 – ГОСТ-русский (на принтерах Star [45] ); ГОСТ 13052 плюс символы для среднеазиатских языков
3843 – Польская (на принтерах Star [45] ); то же, что Мазовия
3844 – CS2 (на принтерах Star [45] ); то же, что Каменицкий
3845 – венгерский (на принтерах Star [45] ); то же, что и CWI
3846 – турецкий (на принтерах Star [45] ); то же, что и турецкий PC-8 + старый знак турецкой лиры (Tʟ) в кодовой точке A8
3847 – Бразилия-ABNT (на принтерах Star [45] ); то же, что и национальный стандарт Бразилии NBR-9614:1986
3848 – Бразилия-ABICOMP (на принтерах Star [45] ); то же, что и ABICOMP
3850 – стандартный KU (на принтерах Star [45] ); вариант кодировки университета Касетсарт для тайского языка
3860 – Rajvitee KU (на принтерах Star [45] ); вариант кодировки университета Касетсарт для тайского языка
3861 – Microwiz KU (на принтерах Star [45] ); вариант кодировки университета Касетсарт для тайского языка
3863 – STD988 TIS (на принтерах Star [45] ); вариация кодировки TIS 620 для тайского языка
3864 – Популярная TIS (на принтерах Star [45] ); вариация кодировки TIS 620 для тайского языка
3865 – Newsic TIS (на принтерах Star [45] ); вариант кодировки TIS 620 для тайского языка
28799 – FOCAL (на принтерах Star [45] ); то же, что и набор символов FOCAL
28800 – HP RPL (на принтерах Star [45] ); то же, что и RPL
Список известных назначений кодовых страниц (неполный):
Критика
Многие старые кодировки символов (в отличие от Unicode) страдают от нескольких проблем. Некоторые поставщики недостаточно документируют значение всех значений кодовых точек в своих кодовых страницах, что снижает надежность последовательной обработки текстовых данных через различные компьютерные системы. Некоторые поставщики добавляют собственные расширения к установленным кодовым страницам, чтобы добавлять или изменять определенные значения кодовых точек: например, байт 0x5C в Shift JIS может представлять как обратную косую черту , так и знак йены в зависимости от платформы. Наконец, для поддержки нескольких языков в программе, которая не использует Unicode, необходимо сохранить кодовую страницу, используемую для каждой строки/документа.
Приложения также могут неправильно маркировать текст в Windows-1252 как ISO-8859-1 . Единственное различие между этими кодовыми страницами заключается в том, что значения кодовых точек в диапазоне 0x80–0x9F, используемые ISO-8859-1 для управляющих символов, вместо этого используются как дополнительные печатные символы в Windows-1252 — в частности, для кавычек , знака евро и символа торговой марки среди прочих. Браузеры на платформах, отличных от Windows, имели тенденцию показывать пустые поля или вопросительные знаки для этих символов, что делало текст трудночитаемым. Большинство браузеров исправили это, игнорируя набор символов и интерпретируя как Windows-1252, чтобы он выглядел приемлемо. В HTML5 обработка ISO-8859-1 как Windows-1252 даже кодифицирована как стандарт W3C . [47] Хотя браузеры обычно были запрограммированы на то, чтобы справляться с таким поведением, это не всегда было верно для другого программного обеспечения. Следовательно, при получении передачи файла из системы Windows, платформы, отличные от Windows, либо проигнорируют эти символы, либо будут рассматривать их как стандартные управляющие символы и попытаются выполнить указанное управляющее действие соответствующим образом.
Благодаря обширной документации Unicode, обширному репертуару символов и политике стабильности символов, перечисленные выше проблемы редко являются проблемой для Unicode. UTF-8 (который может кодировать более миллиона кодовых точек) заменил метод кодовой страницы с точки зрения популярности в Интернете. [48] [49]
Частные кодовые страницы
Когда на заре истории персональных компьютеров пользователи не находили свои требования к кодировке символов удовлетворенными, были созданы частные или локальные кодовые страницы с использованием утилит terminate-and-stay-resident или путем перепрограммирования BIOS EPROM . В некоторых случаях были изобретены неофициальные номера кодовых страниц (например, CP895).
Когда стала доступна поддержка более разнообразных наборов символов, большинство этих кодовых страниц вышли из употребления, за некоторыми исключениями, такими как кодировка Kamenický или KEYBCS2 для чешского и словацкого алфавитов. Другой набор символов — стандарт кодировки Iran System , созданный корпорацией Iran System для поддержки персидского языка . Этот стандарт использовался в Иране в программах на базе DOS, и после введения кодовой страницы Microsoft 1256 этот стандарт устарел. Однако некоторые программы Windows и DOS, использующие эту кодировку, все еще используются, и существуют некоторые шрифты Windows с этой кодировкой.
Чтобы преодолеть такие проблемы, IBM Character Data Representation Architecture уровня 2 специально резервирует диапазоны идентификаторов кодовых страниц для определяемых пользователем и частных назначений. Всякий раз, когда используются такие идентификаторы кодовых страниц, пользователь не должен предполагать, что та же функциональность и внешний вид могут быть воспроизведены в другой конфигурации системы или на другом устройстве или системе, если пользователь не позаботится об этом специально. Диапазон кодовых страниц 57344-61439 ( E000h - EFFFh ) официально зарезервирован для определяемых пользователем кодовых страниц (или фактически CCSID в контексте IBM CDRA ), тогда как диапазон 65280-65533 ( FF00h - FFFDh ) зарезервирован для любых определяемых пользователем назначений "частного использования". Например, незарегистрированный пользовательский вариант кодовой страницы 437 ( 1B5h ) или 28591 ( 6FAF ) может стать 57781 ( E1B5h ) или 61359 ( EFAFh ) соответственно, чтобы избежать потенциальных конфликтов с другими назначениями и сохранить иногда существующую внутреннюю числовую логику в назначениях исходных кодовых страниц. Незарегистрированная частная кодовая страница, не основанная на существующей кодовой странице, специфичная для устройства кодовая страница, такая как шрифт принтера, которой просто нужен логический дескриптор, чтобы стать адресуемой для системы, часто меняющийся загружаемый шрифт или номер кодовой страницы с символическим значением в локальной среде, могут иметь назначение в частном диапазоне, например 65280 ( FF00h ).
Идентификаторы кодовых страниц 0, 65534 ( FFFEh ) и 65535 ( FFFFh ) зарезервированы для внутреннего использования операционными системами, такими как DOS, и не должны назначаться каким-либо конкретным кодовым страницам.
^ ab "Glossary". oracle.com . Архивировано из оригинала 2011-09-30 . Получено 2009-08-08 .
^ "Информация о программировании видеотерминала VT510". Digital Equipment Corporation (DEC). 7.1. Наборы символов - Обзор. Архивировано из оригинала 2016-01-26 . Получено 2017-02-15 . В дополнение к традиционным наборам символов DEC и ISO , которые соответствуют структуре и правилам ISO 2022 , VT510 поддерживает ряд кодовых страниц IBM PC ( номера страниц в руководстве по стандартным наборам символов IBM) в режиме PCTerm для эмуляции консольного терминала стандартных ПК.
^ "7.1. Наборы символов - Обзор". Информация о программировании видеотерминала VT520/VT525 (PDF) . Digital Equipment Corporation (DEC). Июль 1994 г. стр. 7-1. EK-VT520-RM. A01. Архивировано (PDF) из оригинала 2017-02-15 . Получено 2017-02-15 . В дополнение к традиционным наборам символов DEC и ISO VT520 поддерживает ряд кодовых страниц IBM PC (которые ссылаются на номера страниц в руководстве по стандартным наборам символов IBM) в режиме PCTerm для эмуляции консольного терминала стандартных ПК.
^ abc Paul, Matthias R. (2001-06-10) [1995]. "Обзор кодовых страниц DOS, OS/2 и Windows" (файл CODEPAGE.LST) (предварительная редакция 1.59). Архивировано из оригинала 2016-04-20 . Получено 2016-08-20 .
^ "Printer Command Language Symbol Sets". www.pclviewer.com . Архивировано из оригинала 2020-07-31 . Получено 2021-05-25 .
^ "HP Symbol Sets". pclhelp.com . Архивировано из оригинала 2015-02-19 . Получено 2017-02-20 .
^ Пол, Маттиас Р. (2001-06-10) [1995]. "Описание формата файлов DOS, OS/2, Windows NT .CPI и Linux .CP" (файл CPI.LST) (ред. 1.30). Архивировано из оригинала 2016-04-20 . Получено 2016-08-20 .
^ Эллиотт, Джон С. (2006-10-14). "Формат файла CPI". Seasip.info . Архивировано из оригинала 2016-09-22 . Получено 2016-09-22 .
^ "Кодовая страница 1004 - Windows Extended". IBM . 2001. Архивировано из оригинала 2018-05-13 . Получено 2018-05-13 .
^ "Архитектура представления символьных данных". IBM . Архивировано из оригинала 2019-06-23 . Получено 2019-10-12 .
^ abcdefghijkl "IBM Coded Character Set Identifier (CCSID)". IBM . Архивировано из оригинала 2009-11-26.
^ ISO/IEC 8859-1:1998(E). ISO . 1998-04-15. стр. 1. Архивировано из оригинала 2020-10-30 . Получено 2020-10-30 . Кодированные символы в этом наборе могут использоваться в сочетании с кодированными функциями управления, выбранными из ISO/IEC 6429.
^ "Code Pages". microsoft.com . Microsoft . Архивировано из оригинала 2011-02-27 . Получено 2010-12-21 .
^ abcde "Идентификаторы кодовых страниц". Microsoft Developer Network . Microsoft. 2014. Архивировано из оригинала 2016-06-19 . Получено 2016-06-19 .
^ abcde "Веб-кодировки - Internet Explorer - Кодировки". WHATWG Wiki . 2012-10-23. Архивировано из оригинала 2016-06-20 . Получено 2016-06-20 .
^ Foller, Antonin (2014) [2011]. "Западноевропейская (IA5) кодировка - наборы символов Windows". WUtils.com - Онлайновая веб-утилита и справка . Motobit Software. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
^ Фоллер, Антонин (2014) [2011]. "Немецкая (IA5) кодировка - Windows charsets". WUtils.com - Онлайновая веб-утилита и справка . Программное обеспечение Motobit. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
^ Foller, Antonin (2014) [2011]. "Шведская (IA5) кодировка - Windows charsets". WUtils.com - Онлайновая веб-утилита и справка . Motobit Software. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
^ Фоллер, Антонин (2014) [2011]. "Норвежская (IA5) кодировка - наборы символов Windows". WUtils.com - Онлайновая веб-утилита и справка . Программное обеспечение Motobit. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
^ Foller, Antonin (2014) [2011]. "US-ASCII кодировка - Windows charsets". WUtils.com - Онлайн веб-утилита и справка . Motobit Software. Архивировано из оригинала 20-06-2016 . Получено 20-06-2016 .
^ abcdefg Пол, Маттиас Р. (2002-09-05), Техническая информация о недокументированной информации о стране DOS для записей LCASE, ARAMODE и CCTORC, список разработчиков FreeDOS fd-dev на Topica, заархивировано из оригинала 2016-05-27 , извлечено 2016-05-26
^ abcdefgh Пол, Матиас Р. (30 июля 1997 г.). NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей. MPDOSTIP (на немецком языке) (3-е изд.). Архивировано из оригинала 22 мая 2016 г. Проверено 11 января 2012 г.(Примечание. NWDOSTIP.TXT — это комплексная работа по Novell DOS 7 и OpenDOS 7.01 , включающая описание многих недокументированных функций и внутренних компонентов. Она является частью еще более обширной коллекции MPDOSTIP.ZIP автора, которая поддерживалась до 2001 года и распространялась на многих сайтах в то время. Приведенная ссылка указывает на более старую версию файла NWDOSTIP.TXT, преобразованную в HTML.)
^ abcdefgh Пол, Матиас Р. (9 апреля 2001 г.). NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей . MPDOSTIP (на немецком языке) (3-е изд.).
^ "770". Архивировано из оригинала 2017-02-26 . Получено 2017-02-25 .От литовской компании Lika Software
^ "771". Архивировано из оригинала 2017-02-26 . Получено 2017-02-25 .От литовской компании Lika Software
^ "772". Архивировано из оригинала 2017-02-26 . Получено 2017-02-25 .От литовской компании Lika Software
^ "774". Архивировано из оригинала 2017-02-26 . Получено 2017-02-25 .От литовской компании Lika Software
^ abc "lietuvybė.lt - Rašmenų koduotės" [lietuvybė.lt - Кодировки символов] (на литовском языке). Архивировано из оригинала 28 августа 2019 г. Проверено 28 августа 2019 г.
^ Хоган, Том (1992). Die PC-Referenz für Programmierer (на немецком языке) (2-е изд.). Система Верлаг ГмбХ. ISBN3-89390-272-4.(Примечание. Эта книга представляет собой немецкий перевод книги «The Programmer's PC Sourcebook» издательства Microsoft Press. В ней упоминается кодовая страница с идентификатором 854 для Испании.)
Кодовые страницы IBM по схеме кодирования на Wayback Machine (архив 2009-09-06)
Информация о наборе символов IBM/ICU
Идентификаторы кодовых страниц Microsoft (список Microsoft содержит только кодовые страницы, активно используемые обычными приложениями в Windows. Полный список поддерживаемых кодовых страниц см. также в списке Торстена Морина)
Более короткий список Microsoft, содержащий только страницы кодов ANSI и OEM, но со ссылками на более подробную информацию по каждой из них на Wayback Machine (архив 2012-10-23)
Наборы символов и кодовые страницы одним нажатием кнопки
Команда Microsoft Chcp: отображение и установка активной кодовой страницы консоли