что такое кодовая страница

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

Большинство приложений, написанных сегодня, обрабатывали символьные данные в основном как Юникод, используя кодировку UTF-16. Однако многие устаревшие приложения по прежнему используют наборы символов, основанные на кодовых страницах. Даже новым приложениям иногда приходится работать с кодовыми страницами, часто по одной из следующих причин:

Каждая кодовая страница представлена идентификатором кодовой страницы, например 1252, и обрабатывается функциями API, поддерживающими Юникод и кодировка символов. Список поддерживаемых идентификаторов кодовых страниц см. в разделе идентификаторы кодовых страниц. В справочнике по кодовым страницам в центре разработчиков Microsoft Go Global содержатся полные описания многих кодовых страниц.

Windows кодовые страницы, обычно называемые «кодовыми страницами ANSI», — кодовые страницы, для которых значения, отличные от ASCII (значения больше 127), представляют международные символы. эти кодовые страницы используются изначально в Windows Me, а также доступны в Windows NT и более поздних версиях.

первоначально Windows кодовая страница 1252, кодовая страница, обычно используемая для английского и других европейских языков, основана на черновике Американский национальный институт стандартов (ANSI) (ANSI). этот черновик в конечном итоге стал стандартом iso 8859-1, но Windows кодовая страница 1252 была реализована до того, как стандарт стал окончательным и не совпадает с ISO 8859-1.

многие функции API Windows имеют версии «A» (ANSI) и «W» (широкие возможности юникода). версия «A» обрабатывает текст на основе кодовых страниц Windows, а версия «W» обрабатывает текст в юникоде. см. Windows типы данных для строк и соглашений для прототипов функций.

Windows кодовые страницы также иногда называются «активными кодовыми страницами» или «системными активными кодовыми страницами». Windows операционная система всегда имеет одну активную в настоящий момент Windows кодовую страницу. Все версии функций API в ANSI используют текущую активную кодовую страницу.

Кодовые страницы изготовителя оборудования (OEM) — это кодовые страницы, для которых значения, отличные от ASCII, представляют символы рисования строк и пунктуации. Эти кодовые страницы изначально использовались для MS-DOS и по-прежнему используются для консольных приложений. Они также используются для нерасширенных имен файлов в файловых системах FAT12, FAT16 и FAT32, как описано в разделе наборы символов, используемые в именах файлов. Обычно кодовая страница OEM для английского языка — кодовая страница 437.

для Windows кодовых страниц и кодовых страниц OEM значения кода 0x00 до 0x7f соответствуют 7-разрядной кодировке ASCII. Значения кода 0x00 до 0x19 и 0x7F всегда представляют стандартизированные управляющие символы, а 0x20 – 0x7E — стандартизированные отображаемые символы. Символы, представленные оставшимися кодами, от 0x80 до 0xFF, зависят от наборов символов. Каждый набор символов содержит различные специальные символы, обычно настроенные для языка или группы языков. Windows кодовая страница 1252 и OEM кодовая страница 437 обычно используются в США.

в дополнение к Windows и кодовым страницам OEM приложения могут использовать немашинные кодовые страницы. Примерами являются кодовые страницы EBCDIC и Macintosh.

Две кодировки Юникода (UTF-7 и UTF-8) реализуются как кодовые страницы. Как и в случае с другими кодовыми страницами, каждая страница известна числовым идентификатором и может обрабатываться множеством одинаковых функций API Юникода и кодировки символов.

Кодовые страницы могут быть страницами однобайтовой кодировки (SBCS) или двухбайтовой кодировкой (DBCS). На страницах SBCS каждый байт кодирует один символ напрямую, чтобы можно было представить ровно 256 различных символов (включая управляющие символы, буквы, цифры, знаки препинания, символы и т. д.). Кодовые страницы DBCS используются для таких языков, как японский и китайский. В такой кодовой странице некоторые символы имеют две байтовые кодировки с определенными байтами (всегда значения больше 127), служащие «старшими байтами». Вместо кодирования символов в своих собственных значениях старшие байты могут быть сопоставлены с символом только в сочетании с «младшим байтом».

Для некоторых устаревших протоколов требуется использовать однобайтовые и ДВУХБАЙТОВЫЕ кодовые страницы. Каждая кодовая страница SBCS и DBCS поддерживает разные символы, но ни одна кодовая страница не поддерживает полный набор символов, предоставляемых в Юникоде. Каждая кодовая страница SBCS/DBCS поддерживает разные подмножества, которые кодируются по-разному.

Данные, преобразованные из одной однобайтовой или ДВУХБАЙТОВОЙ кодовой страницы в другую, могут быть повреждены, так как одно и то же значение данных на разных кодовых страницах может кодировать другой символ. Данные, преобразованные из Юникода в SBCS или DBCS, подвергаются потери данных, так как данная кодовая страница может не представлять каждый символ, используемый в определенных данных в Юникоде.

В дополнение к кодовым страницам SBCS и DBCS в приложениях доступны кодовые страницы набора многобайтовых наборов символов 52936, 54936, 51949 и 5022x, которые используют такой же подход, как и для DBCS. Однако многобайтовая кодовая страница набора символов выходит за пределы двухбайтовых кодировок некоторых символов. UTF-7 и UTF-8 используют аналогичный подход для кодирования Юникода, основанный на 7-и 8-разрядных байтах соответственно. Дополнительные сведения см. в статье Юникод.

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

приложение может использовать функции MultiByteToWideChar и WideCharToMultiByte для преобразования между строками на основе кодовых страниц Windows и строк юникода. Хотя их имена ссылаются на «многобайтовый», эти функции хорошо подходят для однобайтовых кодовых страниц, DBCS и многобайтовых наборов символов.

WideCharToMultiByte может потерять некоторые данные, если переданная кодовая страница не может представлять все символы в строке Юникода.

приложение может выполнять преобразование между Windows кодовыми страницами и кодовыми страницами OEM с помощью стандартных функций библиотеки времени выполнения C. Однако использование этих функций представляет риск потери данных, поскольку символы, которые могут быть представлены каждой кодовой страницей, не совпадают.

Источник

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

Кодовая страница — это набор символов, который может содержать числа, знаки пунктуации и другие глифы. Различные языки и языковые стандарты могут использовать разные кодовые страницы. Например, кодовая страница ANSI 1252 используется для английского и большинства европейских языков; кодовая страница OEM 932 используется для японского иероглифического письма Кандзи.

Кодовую страницу можно представить в таблице в виде сопоставления символов с однобайтовыми или многобайтными значениями. Многие кодовые страницы включают в себя набор символов ASCII для символов в диапазоне 0x00–0x7F.

В библиотеке времени выполнения Майкрософт используются следующие типы кодовых страниц:

Системная кодовая страница ANSI по умолчанию. По умолчанию при запуске система среды выполнения автоматически устанавливает многобайтовую кодовую страницу в системную кодовую страницу ANSI по умолчанию, которая получается из операционной системы. Вызов

также устанавливает для языкового стандарта системную кодовую страницу ANSI по умолчанию.

Кодовая страница языкового стандарта. Поведение ряда подпрограмм времени выполнения зависит от текущей настройки языкового стандарта, которая включает в себя кодовую страницу языкового стандарта. (Дополнительные сведения см. в разделе подпрограммы, зависящие от языкового стандарта.) По умолчанию все подпрограммы, зависящие от языковых стандартов в библиотеке времени выполнения Microsoft, используют кодовую страницу, соответствующую языковому стандарту «C». Во время выполнения можно изменить или запросить кодовую страницу языкового стандарта, используемую с помощью вызова setlocale.

Многобайтовая кодовая страница. Поведение большинства подпрограмм библиотеки времени выполнения, работающих с многобайтовыми символами, зависит от текущей настройки многобайтовой кодовой страницы. По умолчанию эти подпрограммы используют системную кодовую страницу ANSI по умолчанию. Во время выполнения можно запросить или изменить многобайтовую кодовую страницу с помощью функций _getmbcp и _setmbcp соответственно.

Языковой стандарт «C» определен ANSI для обеспечения соответствия языковому стандарту, с которым обычно выполнялись программы C. Кодовая страница для языкового стандарта «C» (кодовая страница «C») соответствует кодировке ASCII. Например, в языковом стандарте «C» функция islower возвращает значение true только для значений 0x61–0x7A. В другом языковом стандарте true для этих и других значений, как определено в этом языковом стандарте, может возвращаться значение нижнего уровня.

Источник

О кодировках и кодовых страницах

Вряд ли это сейчас сильно актуально, но может кому-то покажется интересным (или просто вспомнит былые годы).

Начну с небольшого экскурса в историю компьютера. Поскольку компьютер использовался для обработки информации, то он просто обязан представлять эту информацию в «человеческом» виде. Компьютер хранит информацию в виде чисел (байтов), а человек воспринимает символы (буквы, цифры, различные знаки). Значит, надо сделать сопоставление число символ и задача будет решена. Сначала посчитаем, сколько символов нам надо (не забудем, что «мы» — американцы, использующие латинский алфавит). Нам надо 10 цифр + 26 заглавных букв английского алфавита + 26 строчных букв + математические знаки (хотя бы +-/*=> + можно определить соответствующий ей код в Unicode (сейчас в кодовых страницах для каждого 8-битного кода показывается 16-битный код Unicode) и потом при необходимости вывести этот символ для любой кодовой страницы, где он присутствует. В настоящее время проблема кодировок и перекодировок для пользователей практически исчезла, но все же изредка приходят письма, где либо тема письма либо содержание «не в той» кодировке.

Интересно, что примерно год назад проблема кодировок ненадолго всплыла при «наезде» ФАС на сотовых операторов, мол те дискриминируют русскоязычных пользователей, поскольку за передачу кириллицы берут больше. Это объясняется техническим решением, выбранным разработчиком протокола SMS связи. Если бы его россияне разработали, они бы, возможно, отдали приоритет кириллице. В указанной статье «начальник управления контроля транспорта и связи Дмитрий Рутенберг отметил, что существуют и восьмибитные кодировки для кириллицы, которые могли бы использовать операторы.» Во как — на улице 21-й век, Unicode шагает по миру, а господин Рутенберг тянет нас в начало 90-х, когда шла «война кодировок» и проблема перекодировок стояла во весь рост. Интересно, в какой кодировке должен получить СМС Вася Пупкин, пользующийся финским телефоном, находящийся в Турции на отдыхе, от жены с корейским телефоном, отправляющей СМС из Казахстана? А от своего французского компаньона (с японским телефоном), находящегося в Испании? Думаю, никакой начальник ответа на этот вопрос дать не сможет. К счастью, это «экономное» предложение не воплотилось в жизнь.

Юный читатель может спросить — а что помешало сразу использовать Unicode, зачем были придуманы эти заморочки с кодовыми страницами? Думаю, дело в финансовой стороне проблемы. Unicode требует в 2 раза больше памяти, а память стоит денег (и дисковая и ОЗУ). Стал бы американец покупать компьютер на 1-2 тыс дороже из-за того, что «теперь новая ОС требует больше памяти, но позволяет без проблем работать с русским, европейскими, арабскими языками»? Боюсь, простой англоязычный покупатель воспринял бы такой аргумент «неадекватно» (и обратился бы к другим производителям).

Источник

Кодирование символов

Кодировка символов (часто называемая также кодовой страницей ) – это набор числовых значений, которые ставятся в соответствие группе алфавитно-цифровых символов, знаков пунктуации и специальных символов.

Для кодировки символов в Windows используется таблица ASCII (American Standard Code for Interchange of Information).

В ASCII первые 128 символов всех кодовых страниц состоят из базовой таблицы символов. Первые 32 кода базовой таблицы, начиная с нулевого, размещают управляющие коды.

СимволКодКлавишиЗначение
nul0Ctrl + @Нуль
soh1Ctrl + AНачало заголовка
stx2Ctrl + BНачало текста
etx3Ctrl + CКонец текста
eot4Ctrl + DКонец передачи
enq5Ctrl + EЗапрос
ack6Ctrl + FПодтверждение
bel7Ctrl + GСигнал (звонок)
bs8Ctrl + HЗабой (шаг назад)
ht9Ctrl + IГоризонтальная табуляция
lf10Ctrl + JПеревод строки
vt11Ctrl + KВертикальная табуляция
ff12Ctrl + LНовая страница
cr13Ctrl + MВозврат каретки
so14Ctrl + NВыключить сдвиг
si15Ctrl + OВключить сдвиг
dle16Ctrl + PКлюч связи данных
dc117Ctrl + QУправление устройством 1
dc218Ctrl + RУправление устройством 2
dc319Ctrl + SУправление устройством 3
dc420Ctrl + TУправление устройством 4
nak21Ctrl + UОтрицательное подтверждение
syn22Ctrl + VСинхронизация
etb23Ctrl + WКонец передаваемого блока
can24Ctrl + XОтказ
em25Ctrl + YКонец среды
sub26Ctrl + ZЗамена
esc27Ctrl + [Ключ
fs28Ctrl + \Разделитель файлов
gs29Ctrl + ]Разделитель группы
rs30Ctrl + ^Разделитель записей
us31Ctrl + _Разделитель модулей

Базовая таблица кодировки ASCII

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

1251 – кодовая страница Windows

128 Ђ144 Ђ160176 °192 А208 Р224 а240 р
129 Ѓ145 ‘161 Ў177 ±193 Б209 С225 б241 с
130 ‚146 ’162 ў178 I194 В210 Т226 в242 т
131 ѓ147 “163 J179 i195 Г211 У227 г243 у
132 „148 ”164 ¤180 ґ196 Д212 Ф228 д244 ф
133 …149 •165 Ґ181 μ197 Е213 Х229 е245 х
134 †150 –166 ¦182 ¶198 Ж214 Ц230 ж246 ц
135 ‡151 —167 §183 ·199 З215 Ч231 з247 ч
136 €152 □168 Ё184 ё200 И216 Ш232 и248 ш
137 ‰153 ™169 ©185 №201 Й217 Щ233 й249 щ
138 Љ154 љ170 Є186 є202 К218 Ъ234 к250 ъ
139171 «187 »203 Л219 Ы235 л251 ы
140 Њ156 њ172 ¬188 j204 М220 Ь236 м252 ь
141 Ќ157 ќ173189 S205 Н221 Э237 н253 э
142 Ћ158 ћ174 ®190 s206 О222 Ю238 о254 ю
143 Џ159 џ175 Ï191 ї207 П223 Я239 п255 я

866 – кодовая страница DOS

128 А144 Р160 а176 ░192 └208 ╨224 р240 ≡Ё
129 Б145 С161 б177 ▒193 ┴209 ╤225 с241 ±ё
130 В146 Т162 в178 ▓194 ┬210 ╥226 т242 ≥
131 Г147 У163 г179 │195 ├211 ╙227 у243 ≤
132 Д148 Ф164 д180 ┤196 ─212 ╘228 ф244 ⌠
133 Е149 Х165 е181 ╡197 ┼213 ╒229 х245 ⌡
134 Ж150 Ц166 ж182 ╢198 ╞214 ╓230 ц246 ¸
135 З151 Ч167 з183 ╖199 ╟215 ╫231 ч247 »
136 И152 Ш168 и184 ╕200 ╚216 ╪232 ш248 °
137 Й153 Щ169 й185 ╣201 ╔217 ┘233 щ249 ·
138 К154 Ъ170 к186 ║202 ╩218 ┌234 ъ250 ∙
139 Л155 Ы171 л187 ╗203 ╦219 █235 ы251 √
140 М156 Ь172 м188 ╝204 ╠220 ▄236 ь252 ⁿ
141 Н157 Э173 н189 ╜205 ═221 ▌237 э253 ²
142 О158 Ю174 о190 ╛206 ╬222 ▐238 ю254 ■
143 П159 Я175 п191 ┐207 ╧223 ▀239 я255

Русские названия основных спецсимволов:

СимволНазвание
`гравис, кавычка, обратный машинописный апостроф
`гравис, кавычка, обратный машинописный апостроф
тильда
!восклицательный знак
@эт, коммерческое эт, «собака»
#октоторп, решетка, диез
$знак доллара
%процент
^циркумфлекс, знак вставки
&амперсанд
*астериск, звездочка, знак умножения
(левая открывающая круглая скобка
)правая закрывающая круглая скобка
минус, дефис
_знак подчеркивания
=знак равенства
+плюс
[левая открывающая квадратная скобка
]правая закрывающая квадратная скобка
<левая открывающая фигурная скобка
>правая закрывающая фигурная скобка
;точка с запятой
:двоеточие
машинописный апостроф, одинарная кавычка
«двойная кавычка
,запятая
.точка
/слэш, косая черта, знак дроби
правая закрытая угловая скобка, знак больше
\обратный слэш, обратная косая черта
|вертикальная черта

Кодировка UNICODE

Юникод (Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода».

В Unicode используются 16-битовые (2-байтовые) коды, что позволяет представить 65536 символов.

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

Тип кодировки задается в свойствах проекта Microsoft Visual Studio:
что такое кодовая страница. Смотреть фото что такое кодовая страница. Смотреть картинку что такое кодовая страница. Картинка про что такое кодовая страница. Фото что такое кодовая страница
что такое кодовая страница. Смотреть фото что такое кодовая страница. Смотреть картинку что такое кодовая страница. Картинка про что такое кодовая страница. Фото что такое кодовая страница
Многобайтовая кодировка предполагает использование кодировки ASCII.
При этом при построении проекта используется директива условной компиляции, переопределяющая тип TCHAR :

Для перекодирования строки в формат Unicode без изменения кодировки файла используется макроопределение
_T(«строка»)

Источник

кодовая страница

Смотреть что такое «кодовая страница» в других словарях:

Кодовая страница — (англ. code page) таблица, сопоставляющая каждому значению байта некоторый символ (или его отсутствие). Обычно код символа имеет размер 8 бит, так что кодовая страница может содержать максимум 256 символов, из чего вытекает резкая… … Википедия

кодовая страница — Страница, на которой записаны коды клавиатуры, используемой в какой либо стране. Главную роль здесь играют символы используемого в стране естественного языка. Каждая клавиатура имеет свой номер. [Гипертекстовый энциклопедический словарь по… … Справочник технического переводчика

Страница — Страница: Страница любая из двух сторон листа бумаги (обычно в книге или тетради). Машинописная страница единица измерения объёма текста, весьма распространённая в докомпьютерную эпоху. Один авторский лист составляет примерно 22 23 машинописных… … Википедия

codepage — Кодовая страница (Codepage) Способ хранения информации о шрифте [упорядоченное множество знаков определенной системы письма] в памяти компьютера, включающий заранее заданный упорядоченный стандартный Комплект знаков (кодировку) для набора… … Шрифтовая терминология

CP850 — Кодовая страница 850 используется в Западной Европе на персональных компьютерах с MS DOS и другими подобными операционными системами, а также в консольных программах Microsoft Windows. CP850 отличается от CP437 тем, что включает все символы ISO… … Википедия

Октеты со старшим битом 1 — Подмножество октетов со старшим битом 1 включает те значения октета, у которых старший бит равен единице (установлен). Содержит коды 10000000..11111111 в двоичном представлении, 0x80..0xFF в шестнадцатеричном, 0200..0377 в восьмеричном, 128..255… … Википедия

Чистый 8-бит — Подмножество октетов со старшим битом 1 включает те значения октета, у которых старший бит равен единице (установлен). Содержит коды 10000000..11111111 в двоичном представлении, 0x80..0xFF в шестнадцатеричном, 0200..0377 в восьмеричном, 128..255… … Википедия

Alt-код — Проверить информацию. Необходимо проверить точность фактов и достоверность сведений, изложенных в этой статье. На странице обсуждения должны быть пояснения … Википедия

Арабское письмо — Тип: консонантное Языки: Арабский, перс … Википедия

Болгарская кодировка — «Болгарская кодировка» (называемая также MIK, Interprog и «старый вариант ВЦ АН СССР») это кодовая страница, применявшаяся на компьютерах болгарского производства (например, «Правец»). Эта кодировка не зафиксирована ни в одном нормативном… … Википедия

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *