Содержание

ASCII таблица / Программирование / stD

ASCIIAmericanStandardCode forInformationInterchange.

ASCII была разработана (1963 год) для кодирования символов, коды которых помещались в 7 бит (128 символов). Со временем кодировка была расширена до 8-ми бит (256 символов), коды первых 128-и символов не изменились.

Управляющие символы ASCII (код символа 0-31)

Первые 32 символа в ASCII-таблице не имеют печатных кодов и используются для управления периферийными устройствами, телетайпами, принтерами и т.д.
DECOCTHEXBINSymbolHTML NumberHTML NameDescription
00000x0000000000NUL \0& #000; Null char
10010x0100000001SOH& #001; Start of Heading
20020x0200000010STX& #002; Start of Text
30030x0300000011ETX& #003; End of Text
40040x0400000100EOT& #004; End of Transmission
50050x0500000101ENQ& #005; Enquiry
60060x0600000110ACK& #006; Acknowledgment
70070x0700000111BEL& #007; Bell
80100x0800001000BS& #008; Back Space
90110x0900001001HT \t& #009; Tab
100120x0A00001010LF \n& #010; Новая строка
110130x0B00001011VT& #011; Vertical Tab
120140x0C00001100FF& #012; Form Feed
130150x0D00001101CR \r& #013; Возврат каретки
140160x0E00001110SO& #014; Shift Out / X-On
150170x0F00001111SI& #015; Shift In / X-Off
160200x1000010000DLE& #016; Data Line Escape
170210x1100010001DC1& #017; Device Control 1 (oft. XON)
180220x1200010010DC2& #018; Device Control 2
190230x1300010011DC3& #019; Device Control 3 (oft. XOFF)
200240x1400010100DC4& #020; Device Control 4
210250x1500010101NAK& #021; Negative Acknowledgement
220260x1600010110SYN& #022; Synchronous Idle
230270x1700010111ETB& #023; End of Transmit Block
240300x1800011000CAN& #024; Cancel
250310x1900011001EM& #025; End of Medium
260320x1A00011010SUB& #026; Substitute
270330x1B00011011ESC& #027; Escape
280340x1C00011100FS& #028; File Separator
290350x1D00011101GS& #029; Group Separator
300360x1E00011110RS& #030; Record Separator
310370x1F00011111US& #031; Unit Separator
DECOCTHEXBINSymbolHTML NumberHTML NameDescription
Печатные символы ASCII (код символа 32-127)

Буквы, цифры, знаки препинания и другие символы расположенные на клавиатуре (англ.).
DECOCTHEXBINSymbolHTML NumberHTML NameDescription
320400x2000100000 & #32; Space
330410x2100100001!& #33; Exclamation mark
340420x2200100010«& #34;& quot;Double quotes (or speech marks)
350430x2300100011#& #35; Number
360440x2400100100$& #36; Dollar
370450x2500100101%& #37; Procenttecken
380460x2600100110&& #38;& amp;Ampersand
390470x2700100111& #39; Single quote
400500x2800101000(& #40; Open parenthesis (or open bracket)
410510x2900101001)& #41; Close parenthesis (or close bracket)
420520x2A00101010*& #42; Asterisk
430530x2B00101011+& #43; Plus
440540x2C00101100,& #44; Comma
450550x2D00101101& #45; Hyphen
460560x2E00101110.& #46; Period, dot or full stop
470570x2F00101111/& #47; Slash or divide
480600x30001100000& #48; Zero
490610x31001100011& #49; One
500620x32001100102& #50; Two
510630x33001100113& #51; Three
520640x34001101004& #52; Four
530650x35001101015& #53; Five
540660x36001101106& #54; Six
550670x37001101117& #55; Seven
560700x38001110008& #56; Eight
570710x39001110019& #57; Nine
580720x3A00111010:& #58; Colon
590730x3B00111011;& #59; Semicolon
600740x3C00111100<& #60;& lt;Less than (or open angled bracket)
610750x3D00111101=& #61; Equals
620760x3E00111110>& #62;& gt;Greater than (or close angled bracket)
630770x3F00111111?& #63; Question mark
641000x4001000000@& #64; At symbol
651010x4101000001A& #65; A
661020x4201000010B& #66; B
671030x4301000011C& #67; C
681040x4401000100D& #68; D
691050x4501000101E& #69; E
701060x4601000110F& #70; F
711070x4701000111G& #71; G
721100x4801001000H& #72; H
731110x4901001001I& #73; I
741120x4A01001010J& #74; J
751130x4B01001011K& #75; K
761140x4C01001100L& #76; L
771150x4D01001101M& #77; M
781160x4E01001110N& #78; N
791170x4F01001111O& #79; O
801200x5001010000P& #80; P
811210x5101010001Q& #81; Q
821220x5201010010R& #82; R
831230x5301010011S& #83; S
841240x5401010100T& #84; T
851250x5501010101U& #85; U
861260x5601010110V& #86; V
871270x5701010111W& #87; W
881300x5801011000X& #88; X
891310x5901011001Y& #89; Y
901320x5A01011010Z& #90; Z
911330x5B01011011[& #91; Opening bracket
921340x5C01011100\& #92; Backslash
931350x5D01011101]& #93; Closing bracket
941360x5E01011110^& #94; Caret — circumflex
951370x5F01011111_& #95; Underscore
961400x6001100000`& #96; Grave accent
971410x6101100001a& #97; a
981420x6201100010b& #98; b
991430x6301100011c& #99; c
1001440x6401100100d& #100; d
1011450x6501100101e& #101; e
1021460x6601100110f& #102; f
1031470x6701100111g& #103; g
1041500x6801101000h& #104; h
1051510x6901101001i& #105; i
1061520x6A01101010j& #106; j
1071530x6B01101011k& #107; k
1081540x6C01101100l& #108; l
1091550x6D01101101m& #109; m
1101560x6E01101110n& #110; n
1111570x6F01101111o& #111; o
1121600x7001110000p& #112; p
1131610x7101110001q& #113; q
1141620x7201110010r& #114; r
1151630x7301110011s& #115; s
1161640x7401110100t& #116; t
1171650x7501110101u& #117; u
1181660x7601110110v& #118; v
1191670x7701110111w& #119; w
1201700x7801111000x& #120; x
1211710x7901111001y& #121; y
1221720x7A01111010z& #122; z
1231730x7B01111011{& #123; Opening brace
1241740x7C01111100|& #124; Vertical bar
1251750x7D01111101}& #125; Closing brace
1261760x7E01111110~& #126; Equivalency sign — tilde
1271770x7F01111111 & #127; Delete
DECOCTHEXBINSymbolHTML NumberHTML NameDescription
Расширенные символы ASCII Win-1251 кириллица (код символа 128-255)
DECOCTHEXBINSymbol
1282000x8010000000Ђ
1292010x8110000001Ѓ
1302020x8210000010
1312030x8310000011ѓ
1322040x8410000100
1332050x8510000101
1342060x8610000110
1352070x8710000111
1362100x8810001000
1372110x8910001001
1382120x8A10001010Љ
1392130x8B10001011
1402140x8C10001100Њ
1412150x8D10001101Ќ
1422160x8E10001110Ћ
1432170x8F10001111Џ
1442200x9010010000Ђ
1452210x9110010001
1462220x9210010010
1472230x9310010011
1482240x9410010100
1492250x9510010101
1502260x9610010110
1512270x9710010111
1522300x9810011000 
1532310x9910011001
1542320x9A10011010љ
1552330x9B10011011
1562340x9C10011100њ
1572350x9D10011101ќ
1582360x9E10011110ћ
1592370x9F10011111џ
1602400xA010100000 
1612410xA110100001Ў
1622420xA210100010ў
1632430xA310100011Ј
1642440xA410100100¤
1652450xA510100101Ґ
1662460xA610100110¦
1672470xA710100111§
1682500xA810101000Ё
1692510xA910101001©
1702520xAA10101010Є
1712530xAB10101011«
1722540xAC10101100¬
1732550xAD10101101­ 
1742560xAE10101110®
1752570xAF10101111Ї
1762600xB010110000°
1772610xB110110001±
1782620xB210110010І
1792630xB310110011і
1802640xB410110100ґ
1812650xB510110101µ
1822660xB610110110
1832670xB710110111·
1842700xB810111000ё
1852710xB910111001
1862720xBA10111010є
1872730xBB10111011»
1882740xBC10111100ј
1892750xBD10111101Ѕ
1902760xBE10111110ѕ
1912770xBF10111111ї
1923000xC011000000А
1933010xC111000001Б
1943020xC211000010В
1953030xC311000011Г
1963040xC411000100Д
1973050xC511000101Е
1983060xC611000110Ж
1993070xC711000111З
2003100xC811001000И
2013110xC911001001Й
2023120xCA11001010К
2033130xCB11001011Л
2043140xCC11001100М
2053150xCD11001101Н
2063160xCE11001110О
2073170xCF11001111П
2083200xD011010000Р
2093210xD111010001С
2103220xD211010010Т
2113230xD311010011У
2123240xD411010100Ф
2133250xD511010101Х
2143260xD611010110Ц
2153270xD711010111Ч
2163300xD811011000Ш
2173310xD911011001Щ
2183320xDA11011010Ъ
2193330xDB11011011Ы
2203340xDC11011100Ь
2213350xDD11011101Э
2223360xDE11011110Ю
2233370xDF11011111Я
2243400xE011100000а
2253410xE111100001б
2263420xE211100010в
2273430xE311100011г
2283440xE411100100д
2293450xE511100101е
2303460xE611100110ж
2313470xE711100111з
2323500xE811101000и
2333510xE911101001й
2343520xEA11101010к
2353530xEB11101011л
2363540xEC11101100м
2373550xED11101101н
2383560xEE11101110о
2393570xEF11101111п
2403600xF011110000р
2413610xF111110001с
2423620xF211110010т
2433630xF311110011у
2443640xF411110100ф
2453650xF511110101х
2463660xF611110110ц
2473670xF711110111ч
2483700xF811111000ш
2493710xF911111001щ
2503720xFA11111010ъ
2513730xFB11111011ы
2523740xFC11111100ь
2533750xFD11111101э
2543760xFE11111110ю
2553770xFF11111111я
DECOCTHEXBINSymbol
Расширенные символы ASCII Win-1252 (код символа 128-255)
DECOCTHEXBINSymbol
1282000x8010000000
1292010x8110000001 
1302020x8210000010
1312030x8310000011ƒ
1322040x8410000100
1332050x8510000101
1342060x8610000110
1352070x8710000111
1362100x8810001000ˆ
1372110x8910001001
1382120x8A10001010Š
1392130x8B10001011
1402140x8C10001100Œ
1412150x8D10001101 
1422160x8E10001110Ž
1432170x8F10001111 
1442200x9010010000 
1452210x9110010001
1462220x9210010010
1472230x9310010011
1482240x9410010100
1492250x9510010101
1502260x9610010110
1512270x9710010111
1522300x9810011000˜
1532310x9910011001
1542320x9A10011010š
1552330x9B10011011
1562340x9C10011100œ
1572350x9D10011101 
1582360x9E10011110ž
1592370x9F10011111Ÿ
1602400xA010100000 
1612410xA110100001¡
1622420xA210100010¢
1632430xA310100011£
1642440xA410100100¤
1652450xA510100101¥
1662460xA610100110¦
1672470xA710100111§
1682500xA810101000¨
1692510xA910101001©
1702520xAA10101010ª
1712530xAB10101011«
1722540xAC10101100¬
1732550xAD10101101­�­
1742560xAE10101110®
1752570xAF10101111¯
1762600xB010110000°
1772610xB110110001±
1782620xB210110010²
1792630xB310110011³
1802640xB410110100´
1812650xB510110101µ
1822660xB610110110
1832670xB710110111·
1842700xB810111000¸
1852710xB910111001¹
1862720xBA10111010º
1872730xBB10111011»
1882740xBC10111100¼
1892750xBD10111101½
1902760xBE10111110¾
1912770xBF10111111¿
1923000xC011000000À
1933010xC111000001Á
1943020xC211000010Â
1953030xC311000011Ã
1963040xC411000100Ä
1973050xC511000101Å
1983060xC611000110Æ
1993070xC711000111Ç
2003100xC811001000È
2013110xC911001001É
2023120xCA11001010Ê
2033130xCB11001011Ë
2043140xCC11001100Ì
2053150xCD11001101Í
2063160xCE11001110Î
2073170xCF11001111Ï
2083200xD011010000Ð
2093210xD111010001Ñ
2103220xD211010010Ò
2113230xD311010011Ó
2123240xD411010100Ô
2133250xD511010101Õ
2143260xD611010110Ö
2153270xD711010111×
2163300xD811011000Ø
2173310xD911011001Ù
2183320xDA11011010Ú
2193330xDB11011011Û
2203340xDC11011100Ü
2213350xDD11011101Ý
2223360xDE11011110Þ
2233370xDF11011111ß
2243400xE011100000à
2253410xE111100001á
2263420xE211100010â
2273430xE311100011ã
2283440xE411100100ä
2293450xE511100101å
2303460xE611100110æ
2313470xE711100111ç
2323500xE811101000è
2333510xE911101001é
2343520xEA11101010ê
2353530xEB11101011ë
2363540xEC11101100ì
2373550xED11101101í
2383560xEE11101110î
2393570xEF11101111ï
2403600xF011110000ð
2413610xF111110001ñ
2423620xF211110010ò
2433630xF311110011ó
2443640xF411110100ô
2453650xF511110101õ
2463660xF611110110ö
2473670xF711110111÷
2483700xF811111000ø
2493710xF911111001ù
2503720xFA11111010ú
2513730xFB11111011û
2523740xFC11111100ü
2533750xFD11111101ý
2543760xFE11111110þ
2553770xFF11111111ÿ
DECOCTHEXBINSymbol

istarik.ru

§14. Кодирование текстовой информации

Главная | Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год (ФГОС) | Кодирование текстовой информации





14.1. Кодировка ASCII и её расширения
Кодирование текстовой информации
14.2. Стандарт Unicode

14.1. Кодировка ASCII и её расширения

Основой для компьютерных стандартов кодирования символов послужил код ASCII (American Standard Code for Information Interchange) — американский стандартный код для обмена информацией, разработанный в 1960-х годах в США и применявшийся для любых, в том числе и некомпьютерных, способов передачи информации (телеграф, факсимильная связь и т. д.). Этот код 7-битовый: общее количество символов составляет 27 = 128, из них первые 32 символа — управляющие, а остальные — изображаемые, т. е. имеющие графическое изображение. К изображаемым символам в ASCII относятся буквы латинского алфавита (прописные и строчные), цифры, знаки препинания и арифметических операций, скобки и некоторые специальные символы. Кодировка ASCII приведена в табл. 3.8.

Таблица 3.8

Кодировка ASCII

Хотя для кодирования символов в ASCII достаточно 7 битов, в памяти компьютера под каждый символ отводится ровно 1 байт (8 битов), при этом код символа помещается в младшие биты, а в старший бит заносится 0.

Например, 01000001 — код прописной латинской буквы «А»; с помощью шестнадцатеричных цифр его можно записать как 41.

Стандарт ASCII рассчитан на передачу только английского текста. Со временем возникла необходимость кодирования и неанглийских букв. Во многих странах для этого стали разрабатывать расширения ASCII -кодировки, в которых применялись однобайтовые коды символов. При этом первые 128 символов кодовой таблицы совпадали с кодировкой ASCII, а остальные (со 128-го по 255-й) использовались для кодирования букв национального алфавита, символов национальной валюты и т. п. Из-за несогласованности этих разработок для многих языков было создано несколько вариантов кодовых таблиц (например, для русского языка их было создано около десятка!).

Впоследствии использование кодовых таблиц было несколько упорядочено: каждой кодовой таблице было присвоено особое название и номер. Для русского языка наиболее распространёнными стали однобайтовые кодовые таблицы CP-866, Windows-1251 (табл. 3.9) и КОИ-8 (табл. 3.10). В них первые 128 символов совпадают с ASCII-кодировкой, а русские буквы размещены во второй части таблицы. Обратите внимание на то, что коды русских букв в этих кодировках различны.

Таблица 3.9

Кодировка Windows-1251

Таблица 3.10

Кодировка КОИ-8

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

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

Cкачать материалы урока


xn—-7sbbfb7a7aej.xn--p1ai

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


 

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

Для кодировки символов в 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

32 пробел48 064 @80 P96 `112 p
33 !49 165 A81 Q97 a113 q
34 50 266 B82 R98 b114 r
35 #51 367 C83 S99 c115 s
36 $52 468 D84 T100 d116 t
37 %53 569 E85 U101 e117 u
38 &54 670 F86 V102 f118 v
39 ‘55 771 G87 W103 g119 w
40 (56 872 H88 X104 h120 x
41 )57 973 I89 Y105 i121 y
42 *58 :74 J90 Z106 j122 z
43 +59 ;75 K91 [107 k123 {
44 ,60 <76 L92 \108 l124 |
45 —61 =77 M93 ]109 m125 }
46 .62 >78 N94 ^110 n126 ~
47 /63 ?79 O95 _111 o127

Символы с номерами от 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 ъ
139 <155 >171 «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 могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.

Для представления символьных данных в кодировке Unicode используется символьный тип wchar_t.

ASCIIUNICODE
charwchar_t
1 байт2 байта

Тип кодировки задается в свойствах проекта Microsoft Visual Studio:


Многобайтовая кодировка предполагает использование кодировки ASCII.
При этом при построении проекта используется директива условной компиляции, переопределяющая тип TCHAR:

 
 
 
 
 

#ifdef _UNICODE
  typedef wchar_t TCHAR;
#else
  typedef char TCHAR;
#endif

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

Прототип макроса содержится в файле tchar.h.


Назад: Представление данных и архитектура ЭВМ

prog-cpp.ru

Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом

Это первая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text

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

Эта статья о кодировках и наборах символов.

Статья Джоеэля Спольски под названием «Абсолютный минимум о Unicode и наборе символов для каждого разработчика(без исключений!)» будет хорошей вводной и мне доставляет большое удовольствие перечитывать ее время от времени. Я стесняюсь отсылать к ней тех людей, которые испытывают трудности с пониманием проблем с кодировкам, хотя она довольно легкая в плане технических деталей. Я надеюсь, эта статья прольет немного света на то, чем именно являются кодировки, и почему все ваши тексты оказываются испорченными в самый ненужный момент. Статья предназначена для разработчиков(главным образом, на PHP), но пользу от нее может получить любой пользователь компьютера.

Основы

Все более или менее слышали об этом, но каким-то образом знание испаряется, когда дело доходит до обсуждения, так что вот вам: компьютер не может хранить буквы, числа, картинки или что-либо еще. Он может запомнить только биты. Бит имеет только два значения: ДА или НЕТ, ПРАВДА или ЛОЖЬ, 1 или 0 или любую другую пару, которую вы можете вообразить. Раз уж компьютер работает с электричеством, бит представлен электрическим зарядом: он либо есть, либо его нет. Людям проще представлять это в виде 1 и 0, так что я буду придерживаться этих обозначений.

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

01100010 01101001 01110100 01110011
b i t s

В этой кодировке, 01100010 представляет из себя ‘b’, 01101001 — ‘i’, 01110100 — ‘t’, 01110011 — ‘s’. Конкретная последовательность бит соответствует букве, а буква – конкретной последовательности битов. Если вы можете запомнить последовательности для 26 букв или умеете действительно быстро находить нужное соответствие, то вы сможете читать биты, как книги.
Упомянутая схема носит название ASCII. Строка с нолями и единицами разбивается на части по 8 бит(по байтам). Кодировка ASCII определяет таблицу перевода байтов в человеческие буквы. Вот небольшой кусочек этой таблицы:

bits character

01000001 A
01000010 B
01000011 C
01000100 D
01000101 E
01000110 F

В ней 95 символов, включая буквы от A до Z, в нижнем и верхнем регистре, цифры от 0 до 9, с десяток знаков препинания, амперсанд, знак доллара и прочие. В нее также включены 33 значения, такие как пробел, табуляция, перевод строки, возврат символа и прочие. Это непечатаемые символы, хотя они видимы человеку и используются им. Некоторые значения полезны только компьютеру, такие как коды начала и конца текста. Всего в кодировку ASCII включены 128 символов — прекрасное ровное число для тех, кто смыслит в компьютерах, так как оно использует все комбинации 7ми битов (от 0000000 до 1111111).

Вот вам способ представить человеческую строку, используя только единицы и нули:

01001000 01100101 01101100 01101100 01101111 00100000
01010111 01101111 01110010 01101100 01100100

«Hello World»

Важные термины

Для кодирования чего-либо в ASCII двигайтесь справа налево, подменяя буквы на биты. Для декодирования битов в символы, следуйте по таблице слева направо, подменяя биты на буквы.

encode |enˈkōd|
verb [ with obj. ]
convert into a coded form
code |kōd|
noun
a system of words, letters, figures, or other symbols substituted for other words, letters, etc.

Кодирование – это представление чего-либо чем-нибудь другим. Кодировка – это набор правил, описывающий способ перевода одного представления в другое.

Прочие термины, заслуживающие прояснения:

Набор символов, чарсет, charset – Набор символов, который может быть закодирован. «Кодировка ASCII включает набор из 128 символов». Синоним к кодировке.

Кодовая страница – страница кодов, закрепляюшая за символом набор битов. Таблица. Синоним к кодировке.

Строка – пачка чего-нибудь, объединенных вместе. Битовая строка – это пачка бит, такая как 00011011. Символьная строка – это пачка символов, например «Вот эта». Синоним к последовательности.

Двоичный, восьмеричный, десятичный, шестнадцатеричный

Существует множество способов записывать числа. 10011111 – это бинарная запись для 237 в восьмеричной, 159 в десятичной и 9F в шестнадцатиричной системах. Значения у всех этих чисел одинаково, но шестнадцатиричная система короче и проще для понимания, чем двоичная. Я буду придерживаться двоичной системы в этой статье, чтобы улучшить понимание и убрать лишний уровень абстракции. Не пугайтесь, встречая коды символов в других нотациях, все значения эквиваленты.

Excusez-Moi?

Раз уж мы теперь знаем, о чем говорим, заметим: 95 символов – это совсем немного, когда речь идет о языках. Этот набор покрывает базовый английский, но как насчет французских символов? А вот это Straßen¬übergangs¬änderungs¬gesetz из немецкого языка? А приглашение на smörgåsbord в шведском? В-общем, не получится. Не в ASCII. Спецификация на представление é, ß, ü, ä, ö просто отсутствует.

“Постойте-ка”, скажут европейцы, “в обычных компьютерах с 8 битами в байте, ASCII никак не использует бит, который всегда равен 0! Мы можем использовать его, чтобы расширить таблицу еще на 128 значений”. И было так. Но способов обозначить звучание гласных еще слишком много. Не все сочетания букв и значений, используемые в европейских языках, влезают в таблицу из 256 записей. Так мир пришел к изобилию кодировок, стандартов, стандартов де-факто и недостандартов, которые покрывают все субнаборы символов. Кому-то понадобилось написать документ на шведском или чешском, и, не найдя нужной кодировки, просто изобрел еще одну. Или я думаю, что все так и произошло.

Не забывайте о русском, хинди, арабском, корейском и множестве других живых языков планеты. Про мертвые уж молчим. Как только вы найдете способ писать документ, использующий несколько языков, попробуйте добавить китайский. Или японский. Оба содержат тысячи символов. И у вас всего 256 значений. Вперед!

Многобайтные кодировки

Для создания таблиц, которые содержат более 256 символов, одного байта просто недостаточно. Двух байтов (16 бит) хватит для кодировки 65536 различных значений. Big-5 например, кодировка двухбайтная. Вместо разбиения последовательности битов в блоки по 8, она использует блоки по 16 битов и содержит большую(я имею ввиду БОЛЬШУЮ) таблицу с соответствием. Big-5 в своем основном виде покрывает большинство символов традиционного китайского. GB18030 – это похожая кодировка, но она включает как традиционный, так и упрощенный китайский. И, прежде чем вы спросите, да, есть кодировки только для упрощенного китайского. А разве одной недостаточно?

Вот кусок таблицы GB18030:

bits character
10000001 01000000 丂
10000001 01000001 丄
10000001 01000010 丅
10000001 01000011 丆
10000001 01000100 丏

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

Путаница с Unicode

В итоге тем, кому больше всех надоела эта каша, пришла в голову идея разработать единый стандарт, объединяющий все кодировки. Этим стандартом стал Unicode. Он определяет невероятную таблицу из 1 114 112 пунктов, используемую для всех вариантов букв и символов. Этого хватит для кодирования всех европейских, средне-азиатских, дальневосточных, южных, северных, западных, доисторических и будущих символов, о которых человечеству известно. Unicode позволяет создать документ на любом языке любыми символами, которые можно ввести в компьютер. Это было невозможно, или очень затруднительно до эры Unicode. В стандарте есть даже неофициальная секция под клингонский. Вы поняли, Unicode настолько большой, чтобы допускает неофициальные секции.

Итак, и сколько же байт использует Unicode для кодирования? Нисколько. Потому что Unicode – это не кодировка.
Смущены? Не вы одни. Unicode в первую и главную очередь определяет таблицу пунктов для символов. Это такой способ сказать «65 – A, 66 – B, 9731 – »(я не шучу, так и есть). Как эти пункты кодируются в байты является предметом другого разговора. Для представления 1 114 112 значений двух байт недостаточно. Трех достаточно, но 3 – странное число, так что 4 является комфортным минимумом. Но, пока вы не используете китайский, или другой язык со множеством символов, которые требуют большого количества битов для кодирования, вам никогда не придет в голову использовать толстую колбасу из 4х байт. Если “A” всегда кодируется в 00000000 00000000 00000000 01000001, а “B” – в 00000000 00000000 00000000 01000010, то документ, использующий такую кодировку, распухнет в 4 раза.

Существует несколько способов решения этой проблемы. UTF-32 – это кодировка, которая переводит все символы в наборы из 32 бит. Это простой алгоритм, но изводящий много места впустую. UTF-16 и UTF-8 являются кодировками с переменной длиной кодирования. Если символ может быть закодирован одним байтом(потому что номер пункта символа очень маленький), UTF-8 закодирует его одним байтом. Если нужно 2 байта, то используется 2 байта. Кодировка сообщает старшими битами, сколькими битами кодируется текущий символ. Такой способ экономит место, но так же и тратит его в случае, если эти сигнальные биты часто используются. UTF-16 является компромиссом: все символы как минимум двухбайтные, но их размер может увеличиваться до 4 байт, если нужно.

character encoding bits
A UTF-8 01000001
A UTF-16 00000000 01000001
A UTF-32 00000000 00000000 00000000 01000001
あ UTF-8 11100011 10000001 10000010
あ UTF-16 00110000 01000010
あ UTF-32 00000000 00000000 00110000 01000010

И все. Unicode – это огромная таблица соответствия символов и чисел, а различные UTF кодировки определяют, как эти числа переводятся в биты. В-общем, Unicode – это просто еще одна схема. Ничего особенного, она просто пытается покрыть все, что можно, оставаясь эффективной. И это хорошо.

Пункты

Символы определяются по их Unicode-пунктам. Эти пункты записаны в шестнадцатеричной системе и предварены “ U+” (просто для удобство, не значит ничего, кроме “Это пункт Unicode”). Символ Ḁ имеет пункт U+1E00. Иными(десятичными) словами, это 7680й символ таблицы Unicode. Он официально называется “ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА А С КОЛЬЦОМ СНИЗУ”.

Ниасилил

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

bits encoding characters

11000100 01000010 Windows Latin 1 ÄB
11000100 01000010 Mac Roman ƒB
11000100 01000010 GB18030 腂

characters encoding bits

Føö Windows Latin 1 01000110 11111000 11110110
Føö Mac Roman 01000110 10111111 10011010
Føö UTF-8 01000110 11000011 10111000 11000011 10110110

Заблуждения, смущения и проблемы

Имея все вышесказанное, мы приходим к насущным проблемам, которые испытывают множество пользователей и разработчиков каждый день, как они соотносятся с указанным выше, и каковы пути решения. Сама большая проблема – это

Какого черта мой текст нечитаем?

ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ

Если вы откроете документ, и он выглядит так, как текст выше, то причина у этого одна: ваша программа ошиблась с кодировкой. И все. Документ не испорчен(по крайней мере, пока), и не нужно никакое волшебство. Вместо него надо просто выбрать правильную кодировку для отображения текста. Предполагаемый документ выше содержит биты:

10000011 01000111 10000011 10010011 10000011 01010010 10000001 01011011
10000011 01100110 10000011 01000010 10000011 10010011 10000011 01001111
10000010 11001101 10010011 11101111 10000010 10110101 10000010 10101101
10000010 11001000 10000010 10100010

Так, быстренько угадали кодировку? Если вы пожали плечами, то вы правы. Да кто знает?
Попробуем с ASCII. Большая часть этих байтов начинается с 1. Если вы правильно помните, ASCII вообще-то не использует этот бит. Так что ASCII не вариант. Как насчет UTF-8? Большая часть байт не является валидными значениями в этой кодировке. Как насчет Mac Roman(еще одна европейская кодировка)? Хм, для нее эти байты являются правильными значениями. 10000011 декодируетися в ”É”, в “G” и так далее. Так что в Mac Roman текст будет выглядеть так: ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ. Правильно? Нет? Может быть? А компьютер-то откуда знает? Может кто-то хотел написать именно это. Насколько я знаю, это может быть последовательностью ДНК! Так и порешим: это Mac Roman, и это ДНК.

Конечно, это полный бред. Правильный ответ таков: текст закодирован в Japanes Shift-JIS и должен выглядеть как エンコーディングは難しくない. Кто бы мог подумать?
Первая причина нечитаемости текста в том, что кто-то пытается прочитать последовательность байт в неверной кодировке. Компьютеру всегда нужно подсказывать. Сам он не догадается. Некоторые типы документов определяют кодировку своего содержимого, но последовательность байт всегда остается черным ящиком.
Большинство браузеров предоставляют возможность указать кодировку страницы с помощью специального пункта меню. Иные программы тоже имеют аналогичные пункты.

У автора нет разбиения на части, но статья и так длинна. Продолжение будет через пару дней.

habr.com

Кодировка ASCII. Таблица кодировки ASCII :: SYL.ru

Под кодированием информации в компьютере понимается процесс ее преобразования в форму, позволяющую организовать более удобную передачу, хранение или автоматическую переработку этих данных. С этой целью используются различные таблицы. Кодировка ASCII — это первая система, разработанная в Соединенных Штатах для работы с англоязычным текстом, которая получила впоследствии распространение во всем мире. Ее описанию, особенностям, свойствам и дальнейшему использованию посвящена статья, представленная ниже.

Отображение и хранение информации в ЭВМ

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

Как все начиналось

Исторически сложилось так, что первые ЭВМ были англоязычными. Для кодирования символьной информации в них было достаточно использовать всего лишь 7 бит памяти, тогда как для этой цели выделялся 1 байт, состоящий из 8 битов. Количество знаков, понимаемых компьютером в таком случае, было равно 128. В число таких символов входили английский алфавит с его знаками препинания, числа и некоторые специальные символы. Англоязычная семибитная кодировка с соответствующей таблицей (кодовой страницей), разработанная в 1963 году, была названа American Standard Code for Information Interchange. Обычно для ее обозначения использовалась и используется и по сей день аббревиатура «Кодировка ASCII».

Переход к мультиязычности

Со временем компьютеры стали широко использоваться и в неанглоговорящих странах. В связи с этим появилась нужда в кодировках, позволяющих использовать национальные языки. Было решено не изобретать велосипед, и взять за основу ASCII. Таблица кодировки в новой редакции значительно расширилась. Использование 8-го бита позволило переводить на компьютерный язык уже 256 символов.

Описание

Кодировка ASCII имеет таблицу, которая делится на 2 части. Общепринятым международным стандартом принято считать лишь ее первую половину. В нее входят:

  • Символы с порядковыми номерами от 0 до 31, кодируемые последовательностями от 00000000 до 00011111. Они отведены для управляющих символов, которые руководят процессом вывода текста на экран или принтер, подачей звукового сигнала и т. п.
  • Символы с NN в таблице от 32 до 127, кодируемые последовательностями от 00100000 до 01111111 составляют стандартную часть таблицы. В их число входят пробел (N 32), буквы латинского алфавита (строчные и прописные), десятизначные цифры от 0 до 9, знаки препинания, скобки разного начертания и другие символы.
  • Символы с порядковыми номерами от 128 до 255, кодируемые последовательностями от 10000000 до 11111111. В их число включены буквы национальных алфавитов, отличные от латинского. Именно эта альтернативная часть таблицы кодировка ASCII используется для преобразования в компьютерную форму русских символов.

Некоторые свойства

К особенностям кодировки ASCII относится отличие букв «A» — «Z» нижнего и верхнего регистров только одним битом. Это обстоятельство значительно упрощает преобразование регистра, а также его проверку на принадлежность к заданному диапазону значений. Кроме того, все буквы в системае кодировки ASCII представляются собственными порядковыми номерами в алфавите, которые записаны 5 цифрами в двоичной системе счисления, перед которыми для букв нижнего регистра стоит 0112, а верхнего — 0102.

К числу особенностей кодировки ASCII можно причислить и представление 10 цифр — «0»-«9». Во второй системе счисления они начинаются с 00112, а заканчиваются 2-ми значениями чисел. Так, 01012 эквивалентно десятичному числу пять, поэтому символ «5» записывается как 0011 01012. Опираясь на сказанное, можно легко преобразовать двоично-десятичные числа в строку в кодировке ASCII посредством добавления слева битовой последовательности 00112 к каждому полубайту.

«Юникод»

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

Так, возникла необходимость создания универсальной кодировки текста, разработкой которой при сотрудничестве со многими лидерами мировой IT-индустрии занялся консорциум «Юникод». Его специалистами была создана система UTF 32. В ней для кодирования 1 символа выделялось 32 бита, составляющих 4 байта информации. Главным недостатком было резкое увеличение объема необходимой памяти в целых 4 раза, что влекло за собой множество проблем.

В то же время для большинства стран с официальными языками, относящимися к индоевропейской группе, количество знаков, равное 232, является более чем избыточным.

В результате дальнейшей работы специалистов из консорциума «Юникод» появилась кодировка UTF-16. Она стала тем вариантом преобразования символьной информации, которая устроила всех как по объему требуемой памяти, так и по числу кодируемых символов. Именно поэтому UTF-16 была принята по умолчанию и в ней для одного знака требуется зарезервировать 2 байта.

Даже эта достаточно продвинутая и удачная версия «Юникода» имела некоторые недостатки, и после перехода от расширенной версии ASCII к UTF-16 увеличивала вес документа в два раза.

В связи с этим было решено использовать кодировку переменной длины UTF-8. В таком случае каждый символ исходного текста кодируется последовательностью длиной от 1 до 6 байт.

Связь с American standard code for information interchange

Все знаки латинского алфавита в UTF-8 переменной длины кодируются в 1 байт, как в системе кодировки ASCII.

Особенностью ЮТФ-8 является то, что в случае текста на латинице без использования других символов, даже программы, не понимающие «Юникод», все равно позволят его прочитать. Иными словами, базовая часть кодировки текста ASCII просто переходит в состав новой UTF переменной длины. Кириллические знаки в ЮТФ-8 занимают 2 байта, а, например, грузинские — 3 байта. Созданием UTF-16 и 8 была решена основная проблема создания единого кодового пространства в шрифтах. С тех пор производителям шрифтов остается только заполнять таблицу векторными формами символов текста исходя из своих потребностей.

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

Теперь вы знаете, сколько символов в кодировке ASCII и, как и почему она была разработана. Конечно, сегодня наибольшее распространение в мире получил стандарт «Юникод». Однако нельзя забывать, что он создан на базе ASCII, поэтому следует по достоинству оценивать вклад его разработчиков в сферу IT.

www.syl.ru

Представление нечисловой информации в компьютере

Главная | Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год | Представление текстовой информации в компьютере





Представление текстовой информации в компьютере

Изучив эту тему, вы узнаете и повторите:

— как в компьютере представляется текстовая информация;
— что такое ASCII и Unicode;
— как в компьютере представляется графическая информация;
— какие форматы используются при хранении графических файлов;
— как в компьютере представляется звуковая информация;
— какие форматы используются при хранении звуковых файлов.

Компьютеры не с самого рождения могли обрабатывать символьную информацию. Лишь с конца 60-х годов они стали использоваться для обработки текстов и в настоящее время большинство пользователей ПК занимаются вводом, редактированием и форматированием текстовой информации.

1. Таблица кодирования ASCII.

А теперь «заглянем» в память компьютера и разберемся, как же представлена в нем текстовая информация.

Текстовая информация состоит из символов: букв, цифр, знаков препинания, скобок и других. Мы уже говорили, что множество всех символов, с помощью которых записывается текст, называется алфавитом, а число символов в алфавите — его мощностью.

Для представления текстовой информации в компьютере используется алфавит мощностью 256 символов. Мы знаем, что один символ такого алфавита несет 8 битов информации: 2 в 8 степени равно 256. 8 битов = 1 байт, следовательно:

Один символ в компьютерном тексте занимает 1 байт памяти.

Как мы выяснили, традиционно для кодирования одного символа используется 8 бит. И, когда люди определились с количеством бит, им осталось договориться о том, каким кодом кодировать тот или иной символ, чтобы не получилось путаницы, т.е. необходимо было выработать стандарт – все коды символов сохранить в специальной таблице кодов. В первые годы развития вычислительной техники таких стандартов не существовало, а сейчас наоборот, их стало очень много, но они противоречивы. Первыми решили эти проблемы в США, в институте стандартизации. Этот институт ввел в действие таблицу кодов ASCII (AmericanStandardCodeforInformationInterchange – стандартный код информационного обмена США).

Рассмотрим таблицу кодов ASCII.

Пояснение: раздать учащимся распечатанную таблицу кодов ASCII.

Таблица ASCII разделена на две части. Первая – стандартная – содержит коды от 0 до 127. Вторая – расширенная – содержит символы с кодами от 128 до 255.

Первые 32 кода отданы производителям аппаратных средств и называются они управляющие, т.к. эти коды управляют выводом данных. Им не соответствуют никакие символы.

Коды с 32 по 127 соответствуют символам английского алфавита, знакам препинания, цифрам, арифметическим действиям и некоторым вспомогательным символам.

Коды расширенной части таблицы ASCII отданы под символы национальных алфавитов, символы псевдографики и научные символы.

Стандартная часть таблицы кодов ASCII

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

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

Коды национального (русского) алфавита расширенной частитаблицы ASCII


Альтернативные системы кодирования кириллицы.

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

Для разных типов ЭВМ используются различные кодировки:

В настоящее время существует 5 кодовых таблиц для русских букв: Windows (СР(кодовая страница)1251), MS – DOS (СР(кодовая страница)866), KOИ – 8 (Код обмена информацией, 8-битный) (используется в OS UNIX), Mac (Macintosh), ISO (OS UNIX).

Одним из первых стандартов кодирования кириллицы на компьютерах был стан-дарт КОИ-8.

Национальная часть кодовой таблицы стандарта КОИ8-Р

В настоящее время применяется и кодовая таблица, размещенная на странице СР866 стандарта кодирования текстовой информации, которая используется в операционной системе MS DOS или сеансе работы MS DOS для кодирования кириллицы.

Национальная часть кодовой таблицы СР866

В настоящее время для кодирования кириллицы наибольшее распространение получила кодовая таблица, размещенная на странице СР1251 соответствующего стандарта, которая используется в операционных системах семейства Windows фирмы Microsoft.

Национальная часть кодовой таблицы СР1251

Во всех представленных кодовых таблицах, кроме таблицы стандарта Unicode, для кодирования одного символа отводится 8 двоичных разрядов (8 бит).

В мире существует примерно 6800 различных языков. Если прочитать текст, напечатанный в Японии на компьютере в России или США, то понять его будет нельзя. Чтобы буквы любой страны можно было читать на любом компьютере, для их кодировки стали использовать 2 байта (16 бит).


		N = 2i 
		2i = 216 = 65536
		N = 65536 	
		N – мощность алфавита символов в кодовой таблице Unicode.
		i – информационный вес символа

Основополагающая таблица использования кодового пространства Unicode

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

Рассмотрим примеры.

1) Представьте в форме шестнадцатеричного кода слово «ЭВМ» во всех пяти кодировках. Воспользуемся компьютерным калькулятором для перевода чисел из десятичной в шестнадцатеричную систему счисления.

Последовательности десятичных кодов слова «ЭВМ» в различных кодировках составляем на основе кодировочных таблиц:


	КОИ8-Р:	252 247 237
	СР1251:	221 194 204
	СР866:	157 130 140
	Мас:		157 130 140
	ISO:		205 178 188

Переводим с помощью калькулятора последовательности кодов из десятичной системы в шестнадцатеричную:


	КОИ8-Р:    FCF7 ED
	СР1251:    DDC2 CC
	СР866:    	9D 82 8C
	Мас:     	9D 82 8C
	ISO:    	CDB2 BC

2) Определить числовой код символа в кодировке Unicode с помощью тексто-вого редактора MicrosoftWord.

1. В операционной системе Windows запустить текстовый редактор MicrosoftWord.

2. В текстовом редакторе MicrosoftWord ввести команду [Вставка-Символ…]. На экране появится диалоговое окно Символ. Центральную часть диалогового окна занимает фрагмент таблицы символов.

3. Для определения числового кола знака кириллицы с помощью раскрывающегося списка Набор: выбрать пункт кириллица.

4. Для определения шестнадцатеричного числового кода символа в кодировке Unicode с помощью раскрывающегося списка из: выбрать тип кодировки Юникод (шестн.).

5. В таблице символов выбрать символ Э. В текстовом поле кодзнака : появится его шестнадцатеричный числовой код (в данном случае 042D).

Решите задачи:

№1. Закодируйте с помощью таблицы ASCII слова: А) Excel; Б) Access; В) Windows; Г) ИНФОРМАЦИЯ.

№2. Буква «i» в таблице кодов имеет код 105. Не пользуясь таблицей, расшифруйте следующую последовательность кодов: 102, 105, 108, 101.

№3. Десятичный код буквы «е» в таблице ASCII равен 101. Не пользуясь таблицей, составьте последовательность кодов, соответствующих слову help.

№4. Десятичный код буквы «i» в таблице ASCII равен 105. Не пользуясь таблицей, составьте последовательность кодов, соответствующих слову link.

№5. Декодируйте следующие тексты, заданные десятичным кодом:


	А) 192 235 227 238 240 232 242 236;
	Б) 193 235 238 234 45 241 245 229 236 224;
	В) 115 111 102 116 119 97 114 101.

№6. Во сколько раз увеличится информационный объем страницы текста при его преобразовании из кодировки Windows 1251 (таблица кодировки содержит 256 символов) в кодировку Unicode (таблица кодировки содержит 65536 символов)?

№7. Каков информационный объем текста, содержащего слово ПРОГРАММИРОВАНИЕ:


	А) в 16-битной кодировке;   
	Б) в 8-битной кодировке.

№8. Текст занимает ¼ Кбайта. Какое количество символов он содержит?

№9. Текст занимает полных 6 страниц. На каждой странице размещается 30 строк по 80 символов. Определить объем оперативной памяти, который займет этот текст.

№10. Свободный объем оперативной памяти компьютера 320 Кбайт. Сколько страниц книги поместится в ней, если на странице:


	А) 32 строки по 32 символа; 
	Б) 64 строки по 64 символа; 
	В) 16 строк по 32 символа.

№11. Текст занимает 20 секторов на двусторонней дискете объемом 360 Кбайт. Дискета разбита на 40 дорожек по 9 секторов. Сколько символов содержит текст?

xn—-7sbbfb7a7aej.xn--p1ai

кто знает, сколько один символ в кодировке ASCII?

двести пятьдесят шесть

это было в доссе напр. Alt 92 \ надо сделать нажми Alt дай номер напр. 66 пусти Alt увидишь B наверно ещо можно найти таблицу знаков или изпробовать

ASCII это 7 бит, 128 символов. Кодировка вошла в Юникод, поэтому её легко увидеть в Windows программе «Таблица символов» (%SystemRoot%\System32\charmap.exe) на любом человеческом шрифте. ASCII заканчивается непечатным символом DEL, код 7F. Так как он непечатный, в шрифтах его нет, последний печатный символ тильда (tilde, код 7E). Дальше идёт кодировка Latin1, она же ANSI в Windows (в Notepad’е, например) — это 8 бит, 256 символов. Непечатные символы в ASCII называются диапазоном C0, в Latin1 — С1. В доюникодовское время на месте символов Latin 1 жили русские буквы. Они и сечас там живут, если выбрать тоже самое ANSI в Notepad’е, и называется это безобразие кодировкой windows-1251.

touch.otvet.mail.ru