Ascii что такое – Таблица символов Юникода (Unicode) — Хитрые инструменты

Кодировка ASCII



ASCII обозначает «Американский Стандартный Кодекс для информационного Обмена» (American Standard Code for Information Interchange). Он был разработан в начале 60-х годов 20-го века как стандартная кодировка для компьютеров и аппаратных устройств.

ASCII — это 7-битная кодировка, содержащая 128 символов.

Она состоит из цифр от 1 до 9, прописных и строчных латинских символов и некоторых специальных символов.

Кодировки, используемые в современных компьютерах, HTML и в интернете, основаны на кодексе ASCII.

В таблице ниже представлены все 128 символов ASCII и их аналоги в HTML.


Печатаемые символы ASCII

Символ ASCIIHTML кодировка Описание
  пробел
!!восклицательный знак
«"компьютерные кавычка
##номер
$$знак доллара
%%процент
&&амперсанд
'апостроф
((левая круглая скобка
))правая круглая скобка
**звездочка (астериск)
++плюс
,,запятая
-дефис
..точка
//слэш
00цифра 0
11цифра 1
22цифра 2
33цифра 3
44цифра 4
55цифра 5
66цифра 6
77цифра 7
88цифра 8
99цифра 9
::двоеточие
;&#59;точка с запятой
<&#60;знак «меньше чем»
=&#61;равно
>&#62;знак «больше чем»
?&#63;вопросительный знак
@&#64;«собачка»
A&#65;прописная A
B&#66;прописная B
C&#67;прописная C
D&#68;прописная D
E&#69;прописная E
F&#70;прописная F
G&#71;прописная G
H&#72;прописная H
I&#73;прописная I
J&#74;прописная J
K&#75;прописная K
L&#76;прописная L
M&#77;прописная M
N&#78;прописная N
O&#79;прописная O
P&#80;прописная P
Q&#81;прописная Q
R&#82;прописная R
S&#83;прописная S
T&#84;прописная T
U&#85;прописная U
V &#86;прописная V
W&#87;прописная W
X&#88;прописная X
Y&#89;прописная Y
Z&#90;прописная Z
[&#91;левая квадратная скобка
\&#92;обратный слэш
]&#93;правая квадратная скобка
^&#94;знак вставки
_&#95;подчеркивание
`&#96;градус
a&#97;строчная a
b&#98;строчная b
c&#99;строчная c
d&#100;строчная d
e&#101;строчная e
f&#102;строчная f
g&#103;строчная g
h&#104;строчная h
i&#105;строчная i
j&#106;строчная j
k&#107;строчная k
l&#108;строчная l
m&#109;строчная m
n&#110;строчная n
o&#111;строчная o
p&#112;строчная p
q&#113;строчная q
r&#114;строчная r
s&#115;строчная s
t&#116;строчная t
u&#117;строчная u
v&#118;строчная v
w&#119;строчная w
x&#120;строчная x
y&#121;строчная y
z&#122;строчная z
{&#123;левая фигурная скобка
|&#124;вертикальная черта
}&#125;правая фигурная скобка
~&#126;тильда

URL коды символов ACSII

URL коды символов UTF-8 диапазон от U+0400 до U+04FF

HTML Кодирование URL

Таблица кодов символов кирилицы UTF-8

Таблица кодов символов Windows-1251




Управляющие символы — Википедия

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

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

Стандарт POSIX требует обязательного наличия лишь восьми управляющих символов — \0, \a, \b, \t, \n, \v, \f, \r (см. переносимый набор символов).

В 1963 году была принята первая версия таблицы ASCII, в которой было определено 29 управляющих символов, большинство из которых находилось в диапазоне 00-1F, за исключением символов ACK,ESC и DEL. В редакции от 1967 года символы ACK и ESC были перенесены в основной диапазон, а их место заняли строчные буквы.

Управляющие символы ASCII предназначались для управления работой телетайпов и видеотерминалов и вводились на них сочетаниями с клавишей Ctrl, которая обнуляла в коде введённой клавиши бит 6. В современных компьютерных системах нигде, кроме эмуляторов терминала, не предусмотрен ввод этих символов напрямую и большинство из перечисленных управляющих символов не используется.

НомерАнглийское названиеРусское названиеСоче-
тание
кла-
виш[1]
Escape
после-
дова-
тель-
ность
Назначение
00NULLпустой символ^@\0Этот символ ничего не делает. Некоторые терминалы изображают его как пробел, но это неправильно. Часто NULL используют для обозначения конца цепочки символов (например, в языке C).
01START OF HEADINGначало заголовка^AВ настоящее время используется в консоли маршрутизаторов Cisco.
02START OF TEXTначало текста^BВ настоящее время используется в консоли маршрутизаторов Cisco.
03END OF TEXTконец текста^CПри вводе на терминале обычно интерпретируется как сигнал прерывания.
04END OF TRANSMISSIONконец передачи^DПри вводе на терминале в UNIX-системах интерпретируется как конец вводимых данных. Если текущая программа брала данные с терминала, то она завершается, как только обработает всё, что было до символа ^D.
05ENQUIRYзапрос^EИспользовался в телетайпной связи. В ответ предполагалось получить идентификационную строку удалённого аппарата.
06ACKNOWLEDGEподтверждение^FИспользовался в телетайпной связи.
07BELLзвуковой сигнал^G\aЕсли этот символ послать на принтер или на терминал, то ничего не напечатается, но послышится звуковой сигнал.
08BACKSPACEвозврат на шаг^H\bПеремещает позицию печати на один символ назад. На принтерах может использоваться для наложения одного символа на другой, например a BS ^ = â. При вводе с терминала иногда используется для стирания предшествующего символа («забой»).
09CHARACTER TABULATION (horizontal tabulation)горизонтальная табуляция^I\tПеремещает позицию печати к следующей позиции горизонтальной табуляции.
0ALINE FEEDперевод строки^J\nПеремещает позицию печати на одну строку вниз (исходно — без возврата каретки) . Разделяет строки текстовых файлов в Unix-системах.
0BLINE TABULATION (vertical tabulation)вертикальная табуляция^K\vПеремещает позицию печати к следующей позиции вертикальной табуляции. На терминалах этот символ обычно эквивалентен переводу строки.
0CFORM FEEDпрогон страницы, смена страницы^L\fВыбрасывает текущую страницу и начинает печать со следующей. На терминалах этот символ обычно эквивалентен переводу строки (хотя в принципе можно было бы его использовать для очистки экрана).
0DCARRIAGE RETURNВозврат каретки^M\rПеремещает позицию печати в крайнее левое положение (исходно — без перевода на следующую строку). Разделяет строки текстовых файлов в некоторых ОС (например Mac OS, но не в Mac OS X). Во многих других ОС (CP/M, MS-DOS и Microsoft Windows), для разделения строк используется сочетание кодов возврата каретки (CARRIAGE RETURN) и перевода строки (LINE FEED) — 0D16 + 0A16, то есть в том виде, в котором файл можно отправить непосредственно на принтер.
0ESHIFT OUT (locking-shift one)режим национальных символов^NВ КОИ-7 включает режим национальных символов. На некоторых принтерах включает режим символов двойной ширины.
0FSHIFT IN (locking-shift zero)режим обычного ASCII^OВ КОИ-7 включает латинский режим. На некоторых принтерах включает режим узких символов.
10DATA LINK ESCAPEосвобождение канала данных^PОзначает, что следующий за ним управляющий символ должен восприниматься как данные, а не как управляющий символ.
11DEVICE CONTROL ONE1-й код управления устройством^QНа терминалах разрешает продолжить вывод данных.
12DEVICE CONTROL TWO2-й код управления устройством^R
13DEVICE CONTROL THREE3-й код управления устройством^SНа терминалах временно прерывает (приостанавливает) вывод данных.
14DEVICE CONTROL FOUR4-й код управления устройством^T
15NEGATIVE ACKNOWLEDGEотрицательное подтверждение^UИспользовался в телетайпной связи.
16SYNCHRONOUS IDLEпустой символ для синхронного режима передачи^VНекоторые линии связи устроены так, что требуют непрерывной передачи данных. Если передавать нечего, то передают этот символ.
17END TRANSMISSION BLOCKконец блока передаваемых данных^W
18CANCELотмена^XДанные, которые идут перед ним, некорректны. (Обычно речь идёт об одной строке.)
19END OF MEDIUMконец носителя^YИспользовался, напр., если закончилась перфолента и т. п.
1ASUBSTITUTEсимвол замены^ZСтавится на месте символов, значения которых были потеряны при передаче. В CP/M и MS-DOS использовался для обозначения конца текстовых файлов и конца вводимых с консоли данных (хотя для этого были предназначены символы ^C и ^D). Некоторые[какие?] текстовые редакторы под DOS автоматически добавляли в конце файла ^Z.
1BESCAPEАльтернативный регистр № 2 (АР2)^[\eОзначает, что следующие за ним символы имеют какое-то другое значение, отличное от того, которое определено в ASCII. Обычно начинает управляющие последовательности. См. также ANSI.SYS.
1CINFORMATION SEPARATOR FOUR (file separator)разделитель данных № 4 (разделитель файлов)^\
1DINFORMATION SEPARATOR THREE (group separator)разделитель данных № 3 (разделитель групп)^]
1EINFORMATION SEPARATOR TWO (record separator)разделитель данных № 2 (разделитель записей)^^Видимо, предназначался для разделения записей в базах данных, но практически никогда не используется для этого.
1FINFORMATION SEPARATOR ONE (unit separator)разделитель данных № 1 (разделитель полей)^_Видимо, предназначался для разделения полей в базах данных, но практически никогда не используется для этого.
7FDELETEудаление^?Предназначен для забивания ошибочно пробитых символов на семидорожечных перфолентах (поскольку обозначается пробитием дырочек во всех дорожках), поэтому там он эквивалентен пустому символу (\0). На терминалах может генерироваться нажатием либо кнопки Backspace, либо кнопки Delete.

80, PADDING CHARACTER, символ-заполнитель.

81, HIGH OCTET PRESET, высокое октетное представление.

82, BREAK PERMITTED HERE, здесь разрешён разрыв строки.

83, NO BREAK HERE, здесь не разрешён разрыв строки.

84, INDEX, индекс.

85, NEXT LINE, следующая строка. Одновременно переводит строку и возвращает позицию печати к началу строки (эквивалентно \r\n).

86, START OF SELECTED AREA, начало выделенной области.

87, END OF SELECTED AREA, конец выделенной области.

88, CHARACTER TABULATION SET, установка позиций горизонтальной табуляции.

89, CHARACTER TABULATION WITH JUSTIFICATION, установка позиций и выравнивания горизонтальной табуляции.

8A, LINE TABULATION SET, установка позиций вертикальной табуляции.

8B, PARTIAL LINE FORWARD, частичный перевод строки вперёд.

, PARTIAL LINE BACKWARD, частичный перевод строки назад.

8D, REVERSE LINE FEED, обратный перевод строки.

8E, SINGLE SHIFT TWO, 2-e значение для следующего символа.

8F, SINGLE SHIFT THREE, 3-e значение для следующего символа.

90, DEVICE CONTROL STRING, строка управления устройством.

91, PRIVATE USE ONE, пользовательский символ № 1.

92, PRIVATE USE TWO, пользовательский символ № 2.

93, SET TRANSMIT STATE, установка режима передачи.

94, CANCEL CHARACTER, символ отмены.

95, MESSAGE WAITING, есть сообщение.

96, START OF GUARDED AREA, начало защищённой области.

97, END OF GUARDED AREA, конец защищённой области.

98, START OF STRING, начало строки.

99, SINGLE GRAPHIC CHARACTER INTRODUCER, следующий символ интерпретируется как специальный графический.

9A, SINGLE CHARACTER INTRODUCER, следующий символ интерпретируется как управляющий.

9B, CONTROL SEQUENCE INTRODUCER, начало управляющей последовательности. Обычно этот символ эквивалентен Escape+[.

9C, STRING TERMINATOR, окончание строки.

9D, OPERATING SYSTEM COMMAND, команда операционной системы.

9E, PRIVACY MESSAGE, секретное сообщение.

9F, APPLICATION PROGRAM COMMAND, команда прикладной программы.

034F, COMBINING GRAPHEME JOINER. Объединить символы, стоящие слева и справа (создать лигатуру).

2008, PUNCTUATION SPACE, пробел шириной в пунктуацию.

200B, ZERO-WIDTH SPACE, пробел нулевой ширины. При выравнивании по ширине может расширяться.

200C, ZERO WIDTH NON-JOINER. Запрещает образование лигатур.

200D, ZERO WIDTH JOINER. Разрешает образование лигатур.

200E, LEFT-TO-RIGHT MARK. Писать слева направо.

200F, RIGHT-TO-LEFT MARK. Писать справа налево.

2028, LINE SEPARATOR, разделитель строк. Разделяет строки текста, но не абзацы.

2029, PARAGRAPH SEPARATOR, разделитель абзацев. Разделяет абзацы текста.

202A, LEFT-TO-RIGHT EMBEDDING. Начало текста, написанного слева направо, внутри текста, написанного справа налево.

202B, RIGHT-TO-LEFT EMBEDDING. Начало текста, написанного справа налево, внутри текста, написанного слева направо.

202C, POP DIRECTIONAL FORMATTING. Конец вставленного текста с другим направлением.

202D, LEFT-TO-RIGHT OVERRIDE. Заменить текст, написанный слева направа, текстом, написанным справа налево.

202E, RIGHT-TO-LEFT OVERRIDE. Заменить текст, написанный справа налево, текстом, написанным слева направо.

2060, WORD JOINER, соединитель слов.

2061, FUNCTION APPLICATION, применение функции.

2063, INVISIBLE SEPARATOR, невидимый разделитель.

2066, LEFT-TO-RIGHT ISOLATE, разделитель слева-направо.

2067, RIGHT-TO-LEFT ISOLATE, разделитель справа-налево.

2068, FIRST STRONG ISOLATE, первый усиленный разделитель.

2069, POP DIRECTIONAL ISOLATE, разделитель популярного направления.

206A, INHIBIT SYMMETRIC SWAPPING, запретить симметричный обмен[2].

206B, ACTIVATE SYMMETRIC SWAPPING, активировать симметричный обмен[2].

206C, INHIBIT ARABIC FORM SHAPING, запретить арабскую форму формирования[2].

206D, ACTIVATE ARABIC FORM SHAPING, активировать арабскую форму формирования[2].

206E, NATIONAL DIGIT SHAPES, национальная форма цифры[2].

206F, NOMINAL DIGIT SHAPES, номинальная форма цифры

[2].

FE00FE0F, VARIATION SELECTOR-1…16, выбор варианта начертания № 1 … № 16.

FEFF, ZERO WIDTH NO-BREAK SPACE / BYTE ORDER MARK, неразрывный пробел нулевой ширины / индикатор порядка байтов. Этот символ используется для указания того, что данный файл записан в UTF-16 или UTF-32 с определённым порядком байтов (поскольку символа FFFE нет, а в UTF-8 байты FE и FF не используются). Использование этого символа в качестве неразрывного пробела нулевой ширины не рекомендуется; для этого есть символ U+2060 (word joiner).

FFF9, INTERLINEAR ANNOTATION ANCOR, якорь межстрочной аннотации.

FFFA, INTERLINEAR ANNOTATION SEPARATOR, разделитель межстрочной аннотации.

FFFB, INTERLINEAR ANNOTATION TERMINATOR, терминатор межстрочной аннотации.

FFFC, OBJECT REPLACEMENT CHARACTER, объектно-заменяющий символ.

FFFD, REPLACEMENT CHARACTER, заменяющий символ. Используется, когда значение символа неизвестно или не может быть выражено в Юникоде (см. также символ 1A).

E0100E01EF, VARIATION SELECTOR-17…256, выбор варианта начертания № 17 … № 256.

  1. ↑ Для первых 32 символов это комбинация Ctrl и клавиши с символом с кодом на 64 больше, чем код управляющего символа.
  2. 1 2 3 4 5 6 Символ не рекомендуется к использованию.

Таблица поиска ASCII — 𝗖𝗼𝗱𝗶𝗻𝗴.𝗧𝗼𝗼𝗹𝘀

Полная таблица поиска ASCII (256 бит), включая управляющие символы ASCII, символы ASCII и расширенные символы ASCII.

ASCII (американский стандартный код для обмена информацией) является наиболее широко используемым стандартом кодирования символов. Стандартный ASCII имеет длину 7 битов, всего 128 различных символов. Расширенный ASCII имеет длину 8 битов, 256 различных символов. Символ авторского права

© define В расширенной таблице ASCII.

Код ASCII (десятичный) Код ASCII (2-арный) Код ASCII (восьмеричный) Код ASCII (шестнадцатеричный) Char (персонаж) Описание (Введение)
00000NULLNull character
01111SOHStart of Header
021022STXStart of Text
031133ETXEnd of Text, hearts card suit
0410044EOTEnd of Transmission, diamonds card suit
0510155ENQEnquiry, clubs card suit
0611066ACKAcknowledgement, spade card suit
0711177BEL
Bell
081000108BSBackspace
091001119HTHorizontal Tab
10101012aLFLine feed
11101113bVTVertical Tab, male symbol, symbol for Mars
12110014cFFForm feed, female symbol, symbol for Venus
13110115dCRCarriage return
14111016eSOShift Out
15111117fSIShift In
16100002010DLEData link escape
17100012111DC1Device control 1
18100102212DC2Device control 2
19100112313DC3Device control 3
20101002414DC4Device control 4
21101012515NAKNAK Negative-acknowledge
22101102616SYNSynchronous idle
23101112717ETBEnd of trans. block
24110003018CANCancel
25110013119EMEnd of medium
2611010321aSUBSubstitute
2711011331bESCEscape
2811100341cFSFile separator
2911101351dGS Group separator
3011110361eRSRecord separator
3111111371fUSUnit separator
12711111111777fDELDelete
Код ASCII (десятичный) Код ASCII (2-арный) Код ASCII (восьмеричный) Код ASCII (шестнадцатеричный) Char (персонаж) Описание (Введение)
321000004020spaceSpace
331000014121!Exclamation mark
341000104222«Double quotes ; Quotation mark ; speech marks
351000114323#Number sign
361001004424$Dollar sign
37
100101
4525%Percent sign
381001104626&Ampersand
391001114727Single quote or Apostrophe
401010005028(round brackets or parentheses, opening round bracket
411010015129)parentheses or round brackets, closing parentheses
42101010522a*Asterisk
43101011532b+Plus sign
44101100542c,Comma
45101101552dHyphen, minus sign
46101110562e.Dot, full stop
47101111572f/Slash, forward slash, fraction bar, division slash
4811000060300number zero
4911000161311number one
5011001062322number two
5111001163333number three
5211010064344number four
5311010165355number five
5411011066366number six
5511011167377number seven
5611100070388number eight
5711100171399number nine
58111010723a:Colon
59111011733b;Semicolon
60111100743cLess-than sign
61111101753d=Equals sign
62111110763e>Greater-than sign ; Inequality
63111111773f?Question mark
64100000010040@At sign
65100000110141ACapital letter A
66100001010242BCapital letter B
67100001110343CCapital letter C
68100010010444DCapital letter D
69100010110545ECapital letter E
70100011010646FCapital letter F
71100011110747GCapital letter G
72100100011048HCapital letter H
73100100111149ICapital letter I
7410010101124aJCapital letter J
7510010111134bKCapital letter K
7610011001144cLCapital letter L
7710011011154dMCapital letter M
7810011101164eNCapital letter N
7910011111174fOCapital letter O
80101000012050PCapital letter P
81101000112151QCapital letter Q
82101001012252RCapital letter R
83101001112353SCapital letter S
84101010012454TCapital letter T
85101010112555UCapital letter U
86101011012656VCapital letter V
87101011112757WCapital letter W
88101100013058XCapital letter X
89101100113159YCapital letter Y
9010110101325aZCapital letter Z
9110110111335b[square brackets or box brackets, opening bracket
9210111001345c\Backslash, reverse slash
9310111011355d]box brackets or square brackets, closing bracket
9410111101365e^Circumflex accent or Caret
9510111111375f_underscore, understrike, underbar or low line
96110000014060`Grave accent
97110000114161aLowercase letter a, minuscule a
98110001014262bLowercase letter b, minuscule b
99110001114363cLowercase letter c, minuscule c
100110010014464dLowercase letter d, minuscule d
101110010114565eLowercase letter e, minuscule e
102110011014666fLowercase letter f, minuscule f
103110011114767gLowercase letter g, minuscule g
104110100015068hLowercase letter h, minuscule h
105110100115169iLowercase letter i, minuscule i
10611010101526ajLowercase letter j, minuscule j
10711010111536bkLowercase letter k, minuscule k
10811011001546clLowercase letter l, minuscule l
10911011011556dmLowercase letter m, minuscule m
11011011101566enLowercase letter n, minuscule n
11111011111576foLowercase letter o, minuscule o
112111000016070pLowercase letter p, minuscule p
113111000116171qLowercase letter q, minuscule q
114111001016272rLowercase letter r, minuscule r
115111001116373sLowercase letter s, minuscule s
116111010016474tLowercase letter t, minuscule t
117111010116575uLowercase letter u, minuscule u
118111011016676vLowercase letter v, minuscule v
119111011116777wLowercase letter w, minuscule w
120111100017078xLowercase letter x, minuscule x
121111100117179yLowercase letter y, minuscule y
12211110101727azLowercase letter z, minuscule z
12311110111737b{braces or curly brackets, opening braces
12411111001747c|vertical-bar, vbar, vertical line or vertical slash
12511111011757d}curly brackets or braces, closing curly brackets
12611111101767e~Tilde ; swung dash
Код ASCII (десятичный) Код ASCII (2-арный) Код ASCII (восьмеричный) Код ASCII (шестнадцатеричный) Char (персонаж) Описание (Введение)
1281000000020080ÇMajuscule C-cedilla
1291000000120181ületter u with umlaut or diaeresis, u-umlaut
1301000001020282életter e with acute accent or e-acute
1311000001120383âletter a with circumflex accent or a-circumflex
1321000010020484äletter a with umlaut or diaeresis, a-umlaut
1331000010120585àletter a with grave accent
1341000011020686åletter a with a ring
1351000011120787çMinuscule c-cedilla
1361000100021088êletter e with circumflex accent or e-circumflex
1371000100121189ëletter e with umlaut or diaeresis ; e-umlauts
138100010102128aèletter e with grave accent
139100010112138bïletter i with umlaut or diaeresis ; i-umlaut
140100011002148cîletter

Что такое Юникод? — Таблица символов Юникода®

Главная → Статьи → Юникод → Что такое Юникод?

Юникод (Unicode), это многоязычный, основанный на ASCII стандарт кодирования символов, а также, связанное с ним, семейство многобайтных кодировок. Если некоторые слова из предыдущего предложения вам не понятны, давайте рассмотрим их подробнее.

Что такое кодировка

Современные компьютеры всё ещё достаточно глупые и, в большинстве своём, не умеют работать ни с чем, кроме чисел. Мы рассматриваем на своих мониторах фотографии, смотрим фильмы, играем в игры. Но для компьютеров всё это лишь безликий поток нулей и единичек. Так же и текст — для компьютера это просто набор байтов. Буквы и любые другие символы представляются в машинной памяти, как числа.

Поэтому программистам при работе с текстом приходится делать подобные соглашения: «А давайте каждому символу будет соответствовать один байт. Причём, если в байте будет число 43, то будем считать, что это цифра ноль. А если число 66, то пусть это будет заглавная латинская буква B».

Подобный список всех используемых символов и соответствующих им чисел и называется кодировкой. Вы, скорее всего, уже слышали названия многих кодировок: Windows-1251, KOI-8, ну и, конечно, Unicode.

Крякозябры

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

Это всё из-за того, что в мире наплодилось слишком много разных кодировок. И текст в одной из них выглядит совершенно не так, как в другой. Дело в том, что компьютер не знает какую кодировку вы используете для текста. Для него это просто последовательность каких-то чисел.

Например, ваш текстовый редактор настроен на кодировку Windows-1251. И вы пишете «Здравствуйте, дорогая Маша!». Вы нажимаете первую букву и программа думает: «ага, русская заглавная буква Зэ — код 199». И записывает число 199 в файл. Маша получает ваше письмо, но в её почтовом клиенте стоит кодировка KOI8-R (потому что Маша любит старый Unix). А в этой кодировке числу 199 соответствует строчная буква «г». И Маша читает: «гДПЮБЯРБСИРЕ, ДНПНЦЮЪ лЮЬЮ!». Маша обиделась!

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

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />

ASCII

В определённый момент времени распространение получила кодировка ASCII (American Standard Code for Information Interchange). В ней определены 128 символов с кодами от 0 до 127. Сюда включён латинский алфавит, цифры и основные знаки препинания (Основная латиница), а также Управляющие символы.

Практически все современные кодировки, использующиеся на персональных компьютерах являются ASCII-совместимыми. То есть первые 128 символов у них кодируются одинаково, а различия начинаются с кода 128 и выше. Вышеупомянутые Windows-1251 и KOI8-r также основаны на ASCII и если бы письмо начиналось бы с «Hello, my dear Maria!», то недопонимания не возникло бы.

Основан на ASCII и Юникод.

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

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

Однобайтные кодировки всем хороши: они компактны, с ними легко работать (нужно достать пятый символ — просто берём пятый байт от начала). Единственная проблема: в них помещается мало символов. Ровно столько, сколько значений может принимать один байт, то есть обычно, это 256. Например, в Windows-1251 мы отдали 128 символов под ASCII, добавили 66 букв русского алфавита (строчные и заглавные), несколько знаков препинания и вот у нас уже остаётся не так много свободных позиций. Даже на псевдографику не хватает.

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

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

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

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

  • Для всех возможных символов, иероглифов и смайликов даже 65 тысяч символов мало.
  • Текстовые файлы стали занимать вдвое больше места, даже тексты на английском. Слишком расточительно.
  • Кодировки перестали быть ASCII-совместимыми и многие программы не могли с ними работать.

Стандарт Unicode

В конечном итоге всё вылилось в стандарт Юникода, который худо-бедно, но решает практически все стоявшие перед кодировками проблемы.

С одной стороны, Юникод позволяет кодировать практически неограниченное количество символов. В последнем стандарте определено более 100 000 различных символов всех современных и многих уже мёртвых языков, а также различные иконки и пиктограммы. С другой стороны, некоторые способы кодирования позволяют Юникоду оставаться ASCII-совместимыми. Что позволяет работать, как и раньше многим программам, а также американским и другим англоязычным пользователям, многие из которых появления Юникода даже не заметили. В Юникоде также собраны все символы из всех популярных стандартов кодирования, что позволяет преобразовать в него любой текст из старой кодировки.

Практически все современные программы, работающие с текстом, понимают Юникод. Более того, обычно они в нём и работают. Например, даже когда вы открываете сайт в старой доброй Windows-1251, браузер сначала внутри у себя перекодирует все тексты в Юникод, а потом отображает их. В общем, Юникод, это светлое будущее интернета и всей компьютерной индустрии.

Отличие набора символов от кодировки

Термины «кодировка», «стандарт кодирования», «набор символов» обычно используются, как синонимы, но между ними есть и тонкие различия. Важно понимать разницу между «стандартом» и, собственно, «кодировкой». Некий стандарт просто говорит, что буква «A», это число 65, а буква «B» — 66. Кодировка же отвечает за то, как эти числа представить в памяти компьютера.

В эпоху однобайтных кодировок, это различие было практически неуловимо. Число 65 — байт со значением 65 или последовательность битов 01000001. Для многобайтных же уже возникают вопросы: сколько байтов использовать, в каком порядке, фиксированное число байтов или нет?

То есть в стандарте Юникода определено, что кириллической букве «А» соответствует абстрактное число 1040. Как представить это число в виде последовательности байтов решает уже конкретная кодировка — UTF-8, UTF-16, UTF-32.

То есть текстовый файл не может быть в кодировке «Юникод», а только в конкретной кодировке «UTF-8» или «UTF-16».

Кодировки и шрифты

Юникод, как и любая другая кодировка не описывает того, как следует отрисовывать символы. Для него число 1040, это «кириллическая заглавная буква А». А какая она, печатная, прописная, наклонная, жирная или с завитушками, это не его дело.

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

Подробнее это описано в статье почему у меня не отображаются некоторые символы?

ASCII85 — Википедия. Что такое ASCII85

Ascii85 (Также известный как «Base85») — это форма кодирования двоичных данных при помощи текста, разработанная Полом Раттером (Paul E. Rutter) для библиотеки btoa. Благодаря тому, что для кодирования 4 байт данных используется 5 ASCII символов (обработанные данные на ¹⁄₄ больше оригинала, при использовании 8-битных ASCII символов), достигается большая эффективность, чем в случае uuencode или Base64, в которых каждые 3 байта кодируются 4 символами (увеличение на ¹⁄₃ при тех же условиях).

Главным образом применяется в форматах PostScript и Portable Document Format компании Adobe.

Основная идея

Основная потребность в кодировании данных текстом проистекает из необходимости передавать бинарные данные по существующим протоколам, предназначенным исключительно для передачи текста (например, e-mail). Такие протоколы могут гарантированно передавать только 7-битные значения (и при этом нужно избегать использования управляющих символов ASCII), а также могут требовать вставки символа конца строки для ограничения длины строк, к тому же допускают пробельные отступы. В итоге остается только 94 печатных символа, которые можно использовать.

4 байта могут содержать 232 = 4 294 967 296 различных значений. 5 цифр в системе счисления с основанием 85 дают 855 = 4 437 053 125 различных значения, чего вполне достаточно для однозначного представления 32-битных значений. Пять цифр в системе счисления с основанием 84 могут предоставить только 845 = 4 182 119 424 значений. Следовательно, 85 является минимальным основанием системы счисления, в которой 4 байта можно закодировать пятью цифрами, потому оно и выбрано.

При кодировании разделяем поток данных на группы по 4 байта, и рассматриваем каждую из них как 32-битное число, со старшим байтом в начале. Последовательным делением на 85 получаем 5 цифр 85-ричной системы счисления. Далее каждая цифра кодируется печатным символом ASCII и выводится в выходной поток с сохранением порядка от старшего разряда к младшему.

Кодирование цифры ASCII символами осуществляется путём увеличения на 33, то есть символами с кодами от 33 («!») до 117 («u»).

Поскольку нулевые значения встречаются не так уж и редко, то ради дополнительного сжатия сделано дополнительное исключение — нулевая четверка байтов кодируется единственным символом «z» вместо «!!!!!».

Группа символов, которые при раскодировании дают значение большее, чем 232 − 1 (кодируемое как «s8W-!»), приводят к ошибке раскодировки, равно как и символ «z» внутри группы. Все пробельные отступы между символами игнорируются и могут вставляться произвольно для удобного форматирования.

Единственным недостатком Ascii85 является то, что в полученном тексте будут встречаться символы (такие как слеш и кавычки), которые имеют особые значения в языках программирования и текстовых протоколах.

btoa

Оригинальная программа btoa всегда кодировала полными группами (последняя дополнялась нулями) и добавляла перед полученным текстом строку «xbtoa Begin», а после — «xbtoa End», за которой следовал размер исходного файла (десятичный и шестнадцатеричный) и три 32-битных контрольных суммы. Раскодировщик использовал информацию об исходной длине, чтобы узнать, сколько дополняющих нулей было вставлено.

В данной программе также поддерживалось специальное значение «z» для кодирования нулей (0x00000000), а также «y» — для группы из четырех пробелов (0x20202020).

Adobe

Adobe адаптировал кодирование btoa, внеся некоторые изменения и дав имя Ascii85. В частности, был добавлен разделитель «~>» для обозначения конца закодированной строки и определения, где нужно обрезать раскодированную строку для получения верной длины. Делается это так: Если последний блок содержит меньше 4 байтов, то он перед кодированием дополняется нулевыми байтами, а после кодирования из последней пятерки убирается столько крайних символов, сколько нулей было добавлено.

При декодировании последний блок дополняется до длины 5 символом «u» (код 84), а после раскодирования столько же байт удаляется (см. пример ниже).

Замечание: Заполняющий символ выбран не случайно. В Base64 при перекодировании биты просто перегруппировываются, не меняется ни их порядок, ни значения (старшие биты исходной последовательности не влияют на младшие биты результата). При преобразовании в систему счисления с основанием 85 (85 не является степенью двойки) значения старших битов исходной последовательности влияют на младшие биты в результате (аналогично и при обратном преобразовании). Дополнение минимальным значением (0) при кодировании и максимальным (85) при раскодировании обеспечивает сохранность старших битов.

В блоке текста Ascii85 в любом месте могут быть вставлены пробельные символы и переносы строк, в том числе и внутри пятерок букв. Они должны просто игнорироваться.

Спецификация от Adobe не содержит расширения «y» для четырех пробелов.

Пример

Например, исторический слоган Википедии,

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

будучи закодированным в Ascii85, выглядит следующим образом:

<~9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>[email protected]$d7F!,L7@<6@)/0JDEF<G%<+EV:2F!,
O<DJ+*.@<*K0@<6L(Df-\0Ec5e;DffZ(EZee.Bl.9pF"AGXBPCsi+DGm>@3BB/F*&OCAfu2/AKY
i(DIb:@FD,*)+C]U=@3BN#EcYf8ATD3s@q?d$AftVqCh[NqF<G:8+EV:.+Cf>-FD5W8ARlolDIa
l(DId<j@<?3r@:F%a+D58'ATD4$Bl@l3De:,-DJs`8ARoFb/0JMK@qB4^F!,R<AKZ&-DfTqBG%G
>uD.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c~>
ТекстMan sure
ASCII779711032115117114101
двоичное представление0100110101100001011011100010000001110011011101010111001001100101
десятичное представление1 298 230 816 = 24×854 + 73×853 + 80×852 + 78×85 + 611 937 076 837 = 37×854 + 9×853 + 17×852 + 44×85 + 22
85-ричное представление (+33)24 (57)73 (106)80 (113)78 (111)61 (94)37 (70)9 (42)17 (50)44 (77)22 (55)
ASCII9jqo^F*2M7

Так как последняя четверка не полная, мы должны «добить» её нулями:

Текст.\0\0\0
ASCII46000
двоичное представление00101110000000000000000000000000
десятичное представление771 751 936 = 14×854 + 66×853 + 56×852 + 74×85 + 46
85-ричное представление (+33)14 (47)66 (99)56 (89)74 (107)46 (79)
ASCII/cYkO

Мы добавили 3 байта при кодировании и должны убрать три последних символа ‘YkO’ из результата.

Раскодирование абсолютно симметрично, за исключением последней пятерки, которую мы «добиваем» символами ‘u’:

ASCII/cuuu
85-ричное представление (+33)14 (47)66 (99)84 (117)84 (117)84 (117)
десятичное представление771 955 124 = 14×854 + 66×853 + 84×852 + 84×85 + 84
двоичное представление00101110000000110001100110110100
ASCII46325180
Текст.[ ETX ][ EM ]не определено в ASCII

Так как мы добавили 3 символа ‘u’, мы должны изъять последние 3 байта из результата. В итоге мы получаем сообщение оригинальной длины.

В исходном примере не было четверки из нулевых байтов, поэтому мы не увидели сокращенной записи ‘z’ в результате.

Совместимость

Кодирование Ascii85 совместимо и с 7- и 8-битными MIME, при этом сопровождается меньшими накладными расходами по объему, чем Base64.

Единственная потенциальная проблема состоит в том, что Ascii85 может содержать символы, которые обязательно должны экранироваться в языках разметки, таких как XML или SGML, например, одинарные и двойные кавычки, угловые скобки, амперсанд («'"<>&»).

Шуточный RFC 1924 для записи IPv6 адресов

Опубликованный 1 апреля 1996, информационный RFC 1924: «A Compact Representation of IPv6 Addresses» (компактное представление IPv6 адресов) предлагает кодировать IPv6 адреса как числа в системе счисления по основанию 85 (base-85, по аналогии с base-64). Это предложение отличается от приведенных выше схем тем, что, во-первых, использует набор из других 85 ASCII символов, а, во-вторых, обрабатывает всю группу из 128 бит как единое число, преобразуя его в 20 итоговых символов, а не группами по 32 бита. Также, не допускаются пробелы.

Предложенный набор символов, в порядке возрастания кодов: 09, AZ, az и еще 23 символа !#$%&()*+-;<=>?@^_`{|}~. Наибольшее значение, помещающееся в 128 бит IPv6 адреса — 2128−1 = 74×8519 + 53×8518 + 5×8517 + …, имеет вид =r54lj&NUUO~Hi%c2ym0.

Набор символов выбран так, чтобы исключить использование наиболее проблемных символов ("',./:[]\), которые нужно экранировать в некоторых протоколах, например в JSON. Но этот набор всё же содержит символы, которые нужно экранировать в SGML протоколах, например в XML.

См. также

Ссылки

  • btoa и atob Исходные коды оригинальной программы 1990
  • PostScript Language Reference (Adobe) — см. ASCII85Encode Filter
  • реализации кодирования и декодирования на разных языках программирования:

Набор символов — Википедия

Материал из Википедии — свободной энциклопедии

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

Набор символов (англ. character set) — таблица, задающая кодировку конечного множества символов алфавита (обычно элементов текста: букв, цифр, знаков препинания). Такая таблица сопоставляет каждому символу последовательность длиной в один или несколько символов другого алфавита (точек и тире в коде Mорзе, сигнальных флагов на флоте, нулей и единиц (битов) в компьютере).

Символы в компьютере обычно кодируются одним или нескольким байтами (группами из восьми битов).

Хотя термин «набор символов» (англ. character set, charset), узаконенный интернет-стандартом RFC 2278, сейчас является, пожалуй, наиболее авторитетным, предшествовавший ему термин «кодировка» (англ. encoding) по-прежнему используется в качестве синонима, в частности, в языках программирования Java[1], Perl[2] и XSLT[3], а также в HTML[4].

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

В настоящее время в основном используются кодировки трёх типов: совместимые с ASCII, совместимые с EBCDIC и основанные на Юникоде 16-битные, с подавляющим преобладанием первых. Представление UTF-8 Юникода совместимо с ASCII. Кодировки на базе EBCDIC (например, ДКОИ-8) используются только на некоторых мэйнфреймах. Первоначально в каждой операционной системе использовался один набор символов. Теперь используемые наборы символов стандартизованы[5], зависят от типа операционной системы лишь по традиции и устанавливаются согласно локали.

В Википедии и других проектах Фонда Викимедиа используется Юникод UTF-8.

Автоматическое распознавание кодировок[править | править код]

Во многих современных текстовых редакторах и браузерах присутствует функция автоматического распознавания кодировок, но она не всегда выдает верный результат. Иногда бывает что текст набранный например в командной строке или некоторых программах не верно декодируется и так вместо нормальных слов получается набор непонятных символов или как их называют кракозябров[en]. Справится с прочтением такого текста может помочь большое количество декодеров текста которые работают онлайн.

Для однобайтных кодировок нужно учитывать тот факт, что частота использования разных букв сильно различается (например, в русском часто используется «о», но редко «ъ»). Поэтому, зная язык текста, можно легко выбрать кодировку, в которой частота байтов лучше соответствует частоте букв данного языка.[6]

Альтернативная точка зрения считает подобные эвристические алгоритмы определения кодировки текста вредными, поскольку современные информационные технологии располагают средствами недвусмысленно сопоставить тексту положенную ему кодовую страницу (см., например, MIME). Широкое же распространение эвристических анализаторов поощряет использование некачественных программ создания текстовых данных, нарушающих стандарты.

  • ISO 646
  • BCDIC
  • EBCDIC
  • ISO 8859:
    • ISO 8859-1, ISO 8859-2, ISO 8859-3, ISO 8859-4, ISO 8859-5, ISO 8859-6, ISO 8859-7, ISO 8859-8, ISO 8859-9, ISO 8859-10, ISO 8859-11, ISO 8859-13, ISO 8859-14, ISO 8859-15
    • CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP863, CP865, CP866, CP869
  • Кодировки Microsoft Windows:
    • Windows-1250 для языков Центральной Европы, которые используют латинское написание букв (польский, чешский, словацкий, венгерский, словенский, хорватский, румынский и албанский)
    • Windows-1251 для кириллических алфавитов
    • Windows-1252 для западных языков
    • Windows-1253 для греческого языка
    • Windows-1254 для турецкого языка
    • Windows-1255 для иврита
    • Windows-1256 для арабского языка
    • Windows-1257 для балтийских языков
    • Windows-1258 для вьетнамского языка
  • MacRoman, MacCyrillic
  • КОИ8 (KOI8-R, KOI8-U…), КОИ-7
  • Болгарская кодировка
  • ISCII
  • VISCII
  • Big5 (наиболее знаменитый вариант Microsoft CP950)
  • Guobiao
  • Shift JIS для японского языка (Microsoft CP932)
  • EUC-KR для корейского языка (Microsoft CP949)
  • ISO-2022 и EUC для китайской письменности
  • Кодировки UTF-8, UTF-16 и UTF-32 набора символов Юникод

Что это и как его открыть?

Программные обеспечения, открывающие ASCII Text:


Microsoft Notepad, разработчик — Microsoft Corporation

Совместимый с:


Notepad++, разработчик — Don Ho

Совместимый с:


MacroMates TextMate, разработчик — MacroMates

Совместимый с:


Vim, разработчик — Bram Moolenaar

Совместимый с:


Microsoft WordPad, разработчик — Microsoft Corporation

Совместимый с:


Gedit, разработчик — GNOME

Совместимый с:


Apple TextEdit, разработчик — Apple

Совместимый с:


ES-Computing Edit Plus, разработчик — ES-Computing

Совместимый с:


Dimenzo Text Editor, разработчик — Dimenzo, Inc.

Совместимый с:


Sublime Text, разработчик — Sublime HQ Pty Ltd

Совместимый с:


Atom, разработчик — GitHub, Inc.

Совместимый с:


TextWrangler, разработчик — Bare Bones Software

Совместимый с:


Bean, разработчик — James Hoover

Совместимый с:


Notepad2, разработчик — Open Source

Совместимый с:


Geany, разработчик — Geany Authors

Совместимый с:


ConTEXT, разработчик — ConTEXT Project

Совместимый с:


NoteTab, разработчик — Fookes Software

Совместимый с:


Write!, разработчик — HamsterCoders

Совместимый с:


NFO Viewer, разработчик — Microsoft Corporation

Совместимый с:


Leafpad, разработчик — Freeshell.org

Совместимый с:


Vi, разработчик — SourceForge

Совместимый с:


UltraEdit, разработчик — IDM Computer Solutions

Совместимый с:


Kate, разработчик — KDE

Совместимый с:


GetDiz, разработчик — Outertech

Совместимый с:

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

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