При вставке экранированной кодовой точки юникода в строку убедитесь, что следующие символы не могут быть поняты как часть шестнадцатеричного значения, указывающего, какой символ кодировать.
\x03b <-- b is a valid hexadecimal character
\x03mb <-- m is not, however, so the escaped character is just \x03
В документации по указанию символьных литералов говорится следующее:
это означает, что 2-я, 3-я и 4-я шестнадцатеричные цифры являются необязательными . Однако компилятор не может понять, что этот "\x03b"
должен быть двумя символами, '\x03'
и 'b'
, и вы на самом деле не имели в виду, что "\x03b"
-это единственный символ '\0x3b'
.
В принципе, если 2-й, 3-й и 4-й символы являются шестнадцатеричными символами (0-9, A-F), то они считаются частью экранированной кодовой точки.
Поделиться Lasse V. Karlsen 04 января 2014 в 22:55
1
Согласно спецификации C# для hex-литералов, все символы после первого являются необязательными. Таким образом, trailing b
интерпретируется как часть шестнадцатеричного литерала.
\x03 == \x0003
\x003 == \x0003
\x0003 == \x0003
\x03b == \x003b
Поскольку m
не является допустимым символом hex, он не анализируется как таковой.
Укажите полный 4-символьный литерал, чтобы избежать этой проблемы.
"a\x0003b".Length == 3
Поделиться Mitch 04 января 2014 в 22:50
Похожие вопросы:
Как удалить ASCII символов новой строки (nl) и символы возврата носителя (cr) из строки в php
Я должен удалить и заменить ASCII символа новой строки (nl) и символы возврата носителя (cr) из строки php. a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>=’\]/,,$pString) но обнаружил, что это удалило путь ко…
Замените управляющие символы их ASCII-кодом в HEX
Я разбираю файл, который может содержать управляющие символы (ASCII 0-31). Теперь я хочу заменить каждый из этих управляющих символов их ASCII-кодом в шестнадцатеричном представлении. Довольно…
Как удалить управляющие символы из строки?
У меня есть строка, которая содержит некоторые управляющие символы trailing: ‘ase_Record’#$A#9#9#9’ Я попытался использовать StringReplace для удаления управляющих символов, но не смог заставить его…
Как удалить управляющие символы из строки java?
У меня есть строка из UI, которая может содержать управляющие символы , и я хочу удалить все управляющие символы , кроме возврата каретки , перевода строк и табуляции . Прямо сейчас я могу найти два…
BufferedReader не анализирует управляющие символы ascii при использовании readline
Я пытаюсь разделить некоторые строки с ascii управляющими символами из текстового файла и в конечном итоге получить следующий вывод: Record1 Record2 Record3 Record4 Мой текстовый файл выглядит так в. D’}, когда я печатаю fileData, он не печатает ASCII…
Управляющие символы — это… Что такое Управляющие символы?
Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие управляющие символы сейчас или не используются вообще, или используются не по назначению.
Стандарт POSIX требует обязательного наличия лишь восьми управляющих символов — \0, \a, \b, \t, \n, \v, \f, \r (см. переносимый набор символов).
Управляющие символы ASCII
Номер | Английское название | Русское название | Соче- тание кла- | Escape после- дова- тель- ность | Назначение | ||
---|---|---|---|---|---|---|---|
00 | NULL | пустой символ | \0 | Этот символ ничего не делает. ? | Предназначен для забивания ошибочно пробитых символов на семидорожечных перфолентах (поскольку обозначается пробитием дырочек во всех дорожках), поэтому там он эквивалентен пустому символу (\0). На терминалах может генерироваться нажатием либо кнопки Backspace, либо кнопки Delete. |
Управляющие символы ISO 8859
80, PADDING CHARACTER, символ-заполнитель.
81, HIGH OCTET PRESET, ???.
82
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
8B, PARTIAL LINE FORWARD, частичный перевод строки вперёд.
8С, 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, установка режима передачи.
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, команда прикладной программы.
Управляющие символы Unicode
034F, COMBINING GRAPHEME JOINER. Объединить символы, стоящие слева и справа (создать лигатуру).
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, соединитель слов.
FE01 … FE0F, 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).
FFFD, REPLACEMENT CHARACTER, заменяющий символ. Используется, когда значение символа неизвестно или не может быть выражено в Уникоде (см. также символ 1A).
E0100 … E01EF, VARIATION SELECTOR-17…256, выбор варианта начертания № 17 … № 256.
Необходимый.txt файл, в котором перечислены все управляющие символы ASCII как отдельные символьные сущности/символы
Управляющие символы, о которых я говорю, можно найти здесь: http://ascii.cl/control-characters.htm
Мне нужны управляющие символы как их единый объект длины символа, не представленный как код ASCII, или простой текст их символа.
См. Ниже…
Как показано выше как в строгих текстовых редакторах, так и в блокнотах, мне нужны фактические символы, а не их ascii-код. Поэтому мне нужны символы, как показано во втором invalid_chrs_list.
Есть ли способ получить эти символы, файл где-то в Интернете или сайт, на который я могу скопировать их?
Редактировать:
#Invalid characters ascii codes here (http://ascii.cl/control-characters.htm)
#invalid_chrs_list = [0,1,2,3,4,5,6,7,8,16,17,18,19,20,21,22,23,24,25,26,27] # ascii
#invalid_chrs_list = ['', ''] # real for acsii code 3 and 17 - NEED THE REST - Can't post these characters into stackoverflow so just pretend their there like in my screenshot.
invalid_chrs_list = ['\x00','\x01','\x02','\x03','\x04','\x05','\x06','\x07','\x08','\x10','\x11','\x12','\x13','\x14','\x15','\x16','\x17','\x18','\x19','\x1a','\x1b'] # escaped
with open(file, 'rb') as f:
# Iterate through the rows
for row in f:
# Catch invalid characters
for char in row:
if char in invalid_chrs_list: # <--- MAKE THIS FASTER
print ('found')
break
чередование для цикла, которое было бы быстрее, если бы проверка работала:
for char in invalid_chrs_list:
if char in row:
Я пробовал использовать ord(char)
и chr(char)
в if char in invalid_chrs_list:
в каждом из списков, но я не уверен, как сравнивать их друг с другом, чтобы проверить соответствие
Изменить — Решение: список в приведенном ниже коде является правильным списком, нет необходимости использовать литералы, которые я показывал на своих изображениях.
Я искал не то место для ответа, спасибо @Peteris за то, что указал мне в правильном направлении.
Мне нужно было переключить режим файла на текст: 'r'
или мне нужно закодировать символ, который я проверяю с помощью char.encode()
чтобы он правильно проверял литерал. В моем случае мне нужно открыть файл в двоичном режиме, поэтому я пошел с char.encode()
.
invalid_chrs_list = ['\x00','\x01','\x02','\x03','\x04','\x05','\x06','\x07','\x08','\x10','\x11','\x12','\x13','\x14','\x15','\x16','\x17','\x18','\x19','\x1a','\x1b']
with open('test.txt', 'rb') as f:
# Iterate through the rows
for row in f:
for char in invalid_chrs_list:
if char.encode() in row:
print ('found')
break
Символы языка программирования С-51
Как и в любом другом текстовом файле, в исходном тексте программы, написанной на языке программирования С51, используются ASCII или ANSI символы. Множество символов, используемых в языке программирования С-51 можно разделить на пять групп.
1. Символы, используемые для образования ключевых слов и идентификаторов (табл.1). В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что язык программирования С-51 различает прописные и строчные буквы. Например, идентификаторы start и Start будут считаться различными идентификаторами.
Таблица 1
Прописные буквы латинского алфавита | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
Строчные буквы латинского алфавита | a b c d e f g h i j k l m n o p q r s t u v w x y z |
Символ подчеркивания | _ |
Арабские цифры | 0 1 2 3 4 5 6 7 8 9 |
2. Прописные и строчные буквы русского алфавита (табл.2).
Таблица 2
Прописные буквы русского алфавита | А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я |
Строчные буквы русского алфавита | а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я |
3. Знаки нумерации и специальные символы (табл. 3). Эти символы используются для организации процесса вычислений, а также для передачи компилятору определенного набора инструкций.
Таблица 2
Символ | Наименование | Символ | Наименование |
---|---|---|---|
, | запятая | ) | круглая скобка правая |
. | точка | ( | круглая скобка левая |
; | точка с запятой | } | фигурная скобка правая |
: | двоеточие | { | фигурная скобка левая |
? | вопросительный знак | < | меньше |
‘ | апостроф | > | больше |
! | восклицательный знак | [ | квадратная скобка |
| | вертикальная черта | ] | квадратная скобка |
/ | дробная черта | # | номер |
\ | обратная черта | % | процент |
~ | тильда | & | амперсанд |
* | звездочка | ^ | исключающее ИЛИ |
+ | плюс | = | равно |
— | минус | « | кавычки |
4. Управляющие и разделительные символы. К этой группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, символы новой страницы и новой строки. Эти символы отделяют друг от друга лексические единицы языка, к которым относятся ключевые слова, константы, идентификаторы и т.д. Последовательность разделительных символов (например, последовательность пробелов) рассматривается компилятором как один символ.
5. Управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность начинается с использования обратной косой черты (\), за которой следует комбинация латинских букв и цифр. Список управляющих последовательностей приведён в таблице 4.
Таблица 4
Управляющая последовательность | Наименование | Шестнадцатеричный код |
---|---|---|
\a | Звонок | 007 |
\b | Возврат на шаг | 008 |
\t | Горизонтальная табуляция | 009 |
\n | Переход на новую строку | 00A |
\v | Вертикальная табуляция | 00B |
\r | Возврат каретки | 00D |
\f | Новая страница | 00C |
\» | Кавычки | 022 |
\’ | Апостроф | 027 |
\0 | Ноль-символ | 000 |
\\ | Обратная дробная черта | 05C |
\OOO | Восьмеричный код ASCII или ANSI символа | |
\xHHH | Шестнадцатеричный код ASCII или ANSI символа | HHH |
Управляющие последовательности \OOO и \xHHH (здесь O обозначает восьмеричную цифру; H обозначает шестнадцатеричную цифру) позволяет представить символ из кодовой таблицы ASCII или ANSI как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например символ возврата каретки может быть представлен следующими способами:
\r — управляющая последовательность,
\015 — восьмеричный код символа возврата каретки,
\x00D — шестнадцатеричный код символа возврата каретки.
Следует отметить, что в строковых константах всегда обязательно задавать все три цифры управляющей последовательности. Например отдельную управляющую последовательность \n (переход на новую строку) можно представить как \010 или \xA, но в строковых константах необходимо задавать все три цифры, в противном случае символ или символы следующие за управляющей последовательностью будут рассматриваться как ее недостающая часть. Например:
«ABCDE\x009FGH» данная строковая команда будет напечатана с использованием определенных функций языка СИ, как два отдельных слова ABCDE и FGH, разделенные табуляцией, в этом случае если указать неполную управляющую строку «ABCDE\x09FGH»,то при печати появится строка ABCDEЯGH, так как компилятор воспримет последовательность \x09F как символ «Я».
Отметим тот факт, что, если обратная дробная черта предшествует символу не являющемуся управляющей последовательностью (т.е. не включенному в табл.4) и не являющемуся цифрой, то эта черта игнорируется, а сам символ представляется как литеральный. Например:
символ \h представляется символом h в строковой или символьной константе.
Кроме определения управляющей последовательности, символ обратной дробной черты (\) используется также как символ продолжения. Если за (\) следует символ возврата каретки, то оба символа игнорируются, а следующая строка является продолжением предыдущей. Это свойство может быть использовано для записи длинных строк. Например:
printf("Это очень длинная \ строка")
Компилятор С-51 выдает сообщение об ошибке, если в тексте исходной программы встречается символ, отличающийся от символов, перечисленных выше.
[Назад] [Содержание] [Вперёд]
HTML Справочник ASCII. Уроки для начинающих. W3Schools на русском
ASCII был первым набором символов (стандартом кодирования), используемым между компьютерами в Интернете.
Обе кодировки — и ISO-8859-1 (по умолчанию в HTML 4.01) и UTF-8 (по умолчанию в HTML5) построены на ASCII.
Набор символов ASCII
ASCII расшифровывается как «American Standard Code for Information Interchange» (Американский стандартный код для обмена информацией).
Он был разработан в начале 1960-х годов как стандартный набор символов для компьютеров и электронных устройств.
ASCII — это 7-битный набор символов, содержащий 128 символов.
Он содержит цифры от 0 до 9, заглавные и строчные буквы английского алфавита от A до Z и некоторые специальные символы.
Наборы символов, используемые на современных компьютерах в HTML и в Интернете, основаны на ASCII.
В следующих таблицах перечислены 128 символов ASCII и их эквивалентное число.
ASCII Печатные символы
Символ | Число | Описание |
---|---|---|
0 — 31 | Control characters (see below) | |
32 | space | |
! | 33 | exclamation mark |
« | 34 | quotation mark |
# | 35 | number sign |
$ | 36 | dollar sign |
% | 37 | percent sign |
& | 38 | ampersand |
‘ | 39 | apostrophe |
( | 40 | left parenthesis |
) | 41 | right parenthesis |
* | 42 | asterisk |
+ | 43 | plus sign |
, | 44 | comma |
— | 45 | hyphen |
. | 46 | period |
/ | 47 | slash |
0 | 48 | digit 0 |
1 | 49 | digit 1 |
2 | 50 | digit 2 |
3 | 51 | digit 3 |
4 | 52 | digit 4 |
5 | 53 | digit 5 |
6 | 54 | digit 6 |
7 | 55 | digit 7 |
8 | 56 | digit 8 |
9 | 57 | digit 9 |
: | 58 | colon |
; | 59 | semicolon |
< | 60 | less-than |
= | 61 | equals-to |
> | 62 | greater-than |
? | 63 | question mark |
@ | 64 | at sign |
A | 65 | uppercase A |
B | 66 | uppercase B |
C | 67 | uppercase C |
D | 68 | uppercase D |
E | 69 | uppercase E |
F | 70 | uppercase F |
G | 71 | uppercase G |
H | 72 | uppercase H |
I | 73 | uppercase I |
J | 74 | uppercase J |
K | 75 | uppercase K |
L | 76 | uppercase L |
M | 77 | uppercase M |
N | 78 | uppercase N |
O | 79 | uppercase O |
P | 80 | uppercase P |
Q | 81 | uppercase Q |
R | 82 | uppercase R |
S | 83 | uppercase S |
T | 84 | uppercase T |
U | 85 | uppercase U |
V | 86 | uppercase V |
W | 87 | uppercase W |
X | 88 | uppercase X |
Y | 89 | uppercase Y |
Z | 90 | uppercase Z |
[ | 91 | left square bracket |
\ | 92 | backslash |
] | 93 | right square bracket |
^ | 94 | caret |
_ | 95 | underscore |
` | 96 | grave accent |
a | 97 | lowercase a |
b | 98 | lowercase b |
c | 99 | lowercase c |
d | 100 | lowercase d |
e | 101 | lowercase e |
f | 102 | lowercase f |
g | 103 | lowercase g |
h | 104 | lowercase h |
i | 105 | lowercase i |
j | 106 | lowercase j |
k | 107 | lowercase k |
l | 108 | lowercase l |
m | 109 | lowercase m |
n | 110 | lowercase n |
o | 111 | lowercase o |
p | 112 | lowercase p |
q | 113 | lowercase q |
r | 114 | lowercase r |
s | 115 | lowercase s |
t | 116 | lowercase t |
u | 117 | lowercase u |
v | 118 | lowercase v |
w | 119 | lowercase w |
x | 120 | lowercase x |
y | 121 | lowercase y |
z | 122 | lowercase z |
{ | 123 | left curly brace |
| | 124 | vertical bar |
} | 125 | right curly brace |
~ | 126 | tilde |
ASCII Символы управления устройством
Управляющие символы ASCII (диапазон 00-31, плюс 127) предназначены для управления аппаратными устройствами.
Управляющие символы (кроме горизонтальной табуляции, перевода строки и возврата каретки) не имеют никакого отношения к документу HTML.
Символ | Число | Описание |
---|---|---|
NUL | 00 | null character |
SOH | 01 | start of header |
STX | 02 | start of text |
ETX | 03 | end of text |
EOT | 04 | end of transmission |
ENQ | 05 | enquiry |
ACK | 06 | acknowledge |
BEL | 07 | bell (ring) |
BS | 08 | backspace |
HT | 09 | horizontal tab |
LF | 10 | line feed |
VT | 11 | vertical tab |
FF | 12 | form feed |
CR | 13 | carriage return |
SO | 14 | shift out |
SI | 15 | shift in |
DLE | 16 | data link escape |
DC1 | 17 | device control 1 |
DC2 | 18 | device control 2 |
DC3 | 19 | device control 3 |
DC4 | 20 | device control 4 |
NAK | 21 | negative acknowledge |
SYN | 22 | synchronize |
ETB | 23 | end transmission block |
CAN | 24 | cancel |
EM | 25 | end of medium |
SUB | 26 | substitute |
ESC | 27 | escape |
FS | 28 | file separator |
GS | 29 | group separator |
RS | 30 | record separator |
US | 31 | unit separator |
DEL | 127 | delete (rubout) |
Что такое ASCII
На чтение 3 мин. Просмотров 1 Опубликовано
Американский стандартный код для обмена информацией (ASCII) — это стандарт, который принимает английские символы, числа, символы пунктуации и другие специальные символы и назначает их где-нибудь в 255 слотах, доступных в 8-битном коде, который был доступен для старых компьютеров.
В этой статье кратко рассматривается история ASCII и описывается его важность.
Почему был создан ASCII?
Создание ASCII произошло из-за использования телеграфных машин. До 1960-х годов у компьютеров было несколько различных способов создания персонажей в своих системах. По мере роста компьютерных сетей стало ясно, что необходим последовательный способ представления различных персонажей, чтобы связь могла происходить между машинами.
Американский национальный институт стандартов, некоммерческая группа, получила запрос от инженера IBM Боба Бемера о создании организации, способной генерировать стандарт, чтобы можно было использовать единый код для компьютерной связи. Этому новому комитету под руководством инженера из TeleType Corporation потребовалось два года, чтобы найти приемлемое решение проблемы.
Это решение стало известно как ASCII.
Коды ASCII
Исходный набор символов ASCII состоял из 128 символов и назначался слотам от 0 до 127. Первоначальное разграничение между типами символов и местом их назначения заключалось в том, создал ли символ команду или нет.
Управляющие персонажи
Управляющие символы в формате ASCII были непечатаемыми символами. Вместо этого они указали какую-то команду или указатель. Примеры включают \ e («escape»), \? («Удалить») и \ 0 («нулевой символ»).
Это символы, считываемые операционной системой. Символы, приведённые здесь в качестве примеров, перечислены только для чтения людьми — это не то, что читает компьютер.
Эти управляющие символы занимают первые 32 слота (от 0 до 31) 8-битного кода.
Персонажи для печати
Остальные слоты от 32 до 127 — это печатные символы, которые мы можем прочитать. _` abcdefghijklmnopqrstuvwxyz {|} ~
Печатные символы ASCII от 32 до 127. Самый первый символ, пробел, обозначается SP.
Расширенный ASCII
Расширенный ASCII — это новейшая часть стандарта ASCII. Сам по себе расширенный стандарт не такой чёткий, как оригинал. Существуют вариации стандарта, но общий смысл остаётся прежним: его цель заключалась в том, чтобы охватить неанглоязычные страны.
В расширенной таблице ASCII перечислены символы валют, буквы на других языках и символы ударения.
Заключение
ASCII был создан для создания единого источника истины для коммуникации между компьютерами в 20 веке. С момента создания таблица расширилась и теперь включает расширенные символы ASCII, в которых используются неамериканские символы, диакритические знаки, буквы и символы.
Новый стандарт также вырос из ASCII, чтобы включить ещё больше символов, называемых Unicode.
Всегда хорошо знать, откуда мы пришли — ASCII был замечательным для своего времени, потому что он позволял компьютерам общаться друг с другом. ASCII продолжает использоваться по сей день вместе с новыми стандартами.
Что можно сказать о таблице символов ascii
Как известно, компьютер хранит информацию в двоичном виде, представляя её в качестве последовательности единиц и нулей. Чтобы перевести информацию в форму, удобную для человеческого восприятия, каждая уникальная последовательность цифр при отображении заменяется на соответствующий ей символ.
Одной из систем соотнесения бинарных кодов с печатными и управляющими символами является кодировка ASCII.
При сегодняшнем уровне развития компьютерных технологий от пользователя не требуется знание кода каждого конкретного символа. Однако общее понимание того, как осуществляется кодирование, является крайне полезным, а для некоторых категорий специалистов и вовсе необходимым.
Создание ASCII
В первоначальном виде кодировка была разработана в 1963 году и затем в течение 25 лет дважды обновлялась.
В исходном варианте таблица символов ASCII включала 128 символов, позже появилась расширенная версия, где первые 128 знаков были сохранены, а кодам с задействованным восьмым битом поставлены в соответствие отсутствовавшие ранее символы.
Компьютерное представление ASCII
Каждый ASCII-символ имеет собственный код, состоящий из 8 знаков, представляющих собой нуль или единицу. Минимальным числом в таком представлении является нуль (восемь нулей в двоичной системе), который и является кодом первого элемента в таблице.
Максимальным двоичным кодом в исходной версии ASCII является нуль + семь единиц, а в расширенной версии – восемь единиц, поскольку подключается восьмой бит.
Управляющие символы
Управляющими символами называются знаки, не имеющие графического представления и использующиеся для организации текста, управления устройствами и т. д. Они могут обозначать начало или конец текста, табуляцию, генерацию звукового сигнала, различные операции для работы по телетайпу (телетайп – машина для передачи данных по электрическом каналу), разрешение вывода данных на устройстве, отмену действия и др.
В таблице символов ASCII позиции с 0 по 31, а также 127 выделены под управляющие знаки. Всего таких знаков 33.
Остальные символы
Оставшиеся 95 позиций отведены под знаки препинания и знаки математических операций, десятичные цифры, буквы латинского алфавита, различающиеся регистром: «А» прописной и «а» строчной соответствуют различные коды в таблице символов ASCII.
Номера символов в таблице
Если человек занимается разработкой программного обеспечения или выполняет некоторые другие задачи из области информационных технологий, ему необходимо знать номера ряда символов ASCII.
Как упоминалось выше, позиции 0-31 и 127 занимают управляющие символы. Номер 32 закреплен за пробелом, номера 33-47 и 58-64 отведены под знаки препинания и основные математические операции.
Латинские прописные буквы расположены по алфавиту и имеют номера с 65-го по 90-й. Строчные буквы также расположены по алфавиту, их позиции – с 97-й по 122-ю. Оставшиеся номера (91-96 и 123-126) закреплены за квадратными и фигурными скобками, косой и прямой чертой, а также некоторыми диакритическими знаками.
Полную таблицу символов в удобном графическом представлении можно увидеть на изображении, представленном выше. На рисунке ниже демонстрируются номера знаков в русской таблице символов ASCII.
Расширенная ASCII
Поскольку исходный вариант кодировки разрабатывался в расчете на американского пользователя, в нём не были предусмотрены не только различные виды письменности и национальные алфавиты, но даже удобное использование диакритических знаков, активно употребляющихся в европейских языках.
Для формирования расширенной кодировки был задействован 8-й бит. Данная версия включает в себя символы национальных европейских алфавитов и фонетической транскрипции, элементы графики, использовавшиеся для рисования таблиц, ряд математических знаков.
Некоторые ASCII-символы сегодня используются редко. В частности, это касается знаков, служащих для рисования таблиц, поскольку за годы, прошедшие с момента разработки расширенной кодировки, были внедрены гораздо более удобные способы графического представления таблиц.
Национальные варианты кодировки
До появления расширенного варианта ASCII для отображения национальных алфавитов использовались переработанные версии кодировки, где на месте латинских букв располагались русские, греческие, арабские символы.
Два кода в таблице были отведены под переключение между стандартной US-ASCII и её национальным вариантом.
После того как ASCII стала включать не 128, а 256 знаков, распространение получил вариант кодировки, при котором исходная версия таблицы была сохранена в первых 128 кодах с нулевым 8-м битом. Знаки национальной письменности хранились в верхней половине таблицы (128-255-я позиции).
Знать непосредственно коды символов ASCII пользователю не требуется. Разработчику программного обеспечения обычно достаточно знать номер элемента в таблице, чтобы при необходимости рассчитать его код, используя бинарную систему.
Русский язык
После разработки в начале 70-х годов кодировок для скандинавских языков, китайского, корейского, греческого и др. , созданием собственного варианта занялся и Советский Союз. Вскоре был разработан вариант 8-битной кодировки под названием КОИ8, сохраняющей первые 128 кодов символов ASCII и выделяющей столько же позиций под буквы национального алфавита и дополнительные знаки.
До внедрения Юникода КОИ8 доминировала в российском сегменте интернета. Существовали варианты кодировки как для русского, так и для украинского алфавита.
Проблемы ASCII
Поскольку количество элементов даже в расширенной таблице не превышало 256, возможность вмещения в одну кодировку нескольких различных письменностей отсутствовала. В 90-е годы в Рунете появилась проблема «крокозябр», когда тексты, набранные русскими символами ASCII, отображались некорректно.
Проблема заключалась в несоответствии кодов различных вариантов ASCII друг другу. Вспомним, что на позициях 128-255 могли располагаться различные знаки, и при смене одной кириллической кодировки на другую все буквы текста заменялись на другие, имеющие идентичный номер в другой версии кодировки.
Текущее состояние
С появлением Юникода популярность ASCII резко пошла на убыль.
Причина этого кроется в том факте, что новая кодировка позволила вместить знаки почти всех письменных языков. При этом первые 128 символов ASCII соответствуют тем же символам в Юникоде.
Таким образом, ASCII является важной частью истории информационных технологий, однако её использование в дальнейшем видится малоперспективным.
Символ 0x5e в первой версии стандарта ASCII (1963) соответствовал стрелке вверх, а символ 0x5f — стрелке влево. Стандарт ECMA-6 (1965) заменил их на знак вставки (используемый также в роли циркумфлекса) и нижнюю черту (подчёркивание) соответственно.
Управляющие символы
Поскольку ASCII изначально предназначался для обмена информацией (по телетайпу), в нём, кроме информационных символов, используются символы-команды для управления связью. Это обычный набор спецсигналов, применявшийся и в других докомпьютерных средствах обмена сообщениями (азбука Морзе, семафорная азбука), дополненный с учётом специфики устройства.
(После названия каждого символа указан его 16-ричный код)
- NUL, 00 — Null, пустой. Всегда игнорировался. На перфолентах 1 представлялась отверстием, 0 — отсутствием отверстия. Поэтому пустые части перфоленты до начала и после конца сообщения состояли из таких символов. Сейчас используется во многих языках программированиякак конец строки. (Строка понимается как последовательность символов.) В некоторых операционных системах NUL — последний символ любого текстового файла.
- SOH, 01 — Start Of Heading, начало заголовка.
- STX, 02 — Start of Text, начало текста. Текстом называлась часть сообщения, предназначенная для печати. Адрес, контрольная сумма и т. д. входили или в заголовок, или в часть сообщения после текста.
- ETX, 03 — End of Text, конец текста. Здесь телетайп прекращал печатать. Использование символа Ctrl-C, имеющего код 03, для прекращения работы чего-то (обычно программы), восходит ещё к тем временам.
- EOT, 04 — End of Transmission, конец передачи. В системе UNIX Ctrl-D, имеющий тот же код, означает конец файла при вводе с клавиатуры.
- ENQ, 05 — Enquire. Прошу подтверждения.
- ACK, 06 — Acknowledgement. Подтверждаю.
- BEL, 07 — Bell, звонок, звуковой сигнал. Сейчас тоже используется. В языках программирования C и C++ обозначается a.
- BS, 08 — Backspace, возврат на один символ. Сейчас стирает предыдущий символ.
- TAB, 09 — Tabulation. Обозначался также HT — Horizontal Tabulation, горизонтальная табуляция. Во многих языках программирования обозначается .
- LF, 0A — Line Feed, перевод строки. Сейчас в конце каждой строчки текстового файла ставится либо этот символ, либо CR, либо и тот и другой (CR, затем LF), в зависимости от операционной системы. Во многих языках программирования обозначается
и при выводе текста приводит к переводу строки. - VT, 0B — Vertical Tab, вертикальная табуляция.
- FF, 0C — Form Feed, прогон страницы, новая страница.
- CR, 0D — Carriage Return, возврат каретки. Во многих языках программирования этот символ, обозначаемый
, можно использовать для возврата в начало строчки без перевода строки. В некоторых операционных системах этот же символ, обозначаемый Ctrl-M, ставится в конце каждой строчки текстового файла перед LF. - SO, 0E — Shift Out, измени цвет ленты (использовался для двуцветных лент; цвет менялся обычно на красный). В дальнейшем обозначал начало использования национальной кодировки.
- SI, 0F — Shift In, обратно к Shift Out.
- DLE, 10 — Data Link Escape, освобождение канала данных — следующие символы представляют собой данные, а не управляющие символы.
- DC1, 11 — Device Control 1, 1-й символ управления устройством — включить устройство чтения перфоленты.
- DC2, 12 — Device Control 2, 2-й символ управления устройством — включить перфоратор.
- DC3, 13 — Device Control 3, 3-й символ управления устройством — выключить устройство чтения перфоленты.
- DC4, 14 — Device Control 4, 4-й символ управления устройством — выключить перфоратор.
- NAK, 15 — Negative Acknowledgment, не подтверждаю. Обратно Acknowledgment.
- SYN, 16 — Synchronization. Этот символ передавался, когда для синхронизации было необходимо что-нибудь передать.
- ETB, 17 — End of Text Block, конец текстового блока. Иногда текст по техническим причинам разбивался на блоки.
- CAN, 18 — Cancel, отмена (того, что было передано ранее).
- EM, 19 — End of Medium, конец носителя (кончилась перфолента и т. д. )
- SUB, 1A — Substitute, подставить. Ставится на месте символа, значение которого было потеряно или испорчено при передаче. Сейчас Ctrl-Z используется как конец файла при вводе с клавиатуры в системах DOS и Windows. У этой функции нет никакой очевидной связи с символом SUB.
- ESC, 1B — Escape. Следующие за ним символы имеют какое-то другое значение, отличное от того, которое определено в ASCII. Обычно начинал управляющие последовательности.
- FS, 1C — File Separator, разделитель файлов.
- GS, 1D — Group Separator, разделитель групп.
- RS, 1E — Record Separator, разделитель записей.
- US, 1F — Unit Separator, разделитель юнитов. То есть поддерживалось 4 уровня структуризации данных: сообщение могло состоять из файлов, файлы из групп, группы из записей, записи из юнитов.
- DEL, 7F — Delete, стереть последний символ. Символом DEL, состоящим в двоичном коде из всех единиц, можно было забить любой символ. Устройства и программы игнорировали DEL так же, как NUL. Код этого символа происходит из первых текстовых процессоров с памятью на перфоленте: в них удаление символа происходило забиванием его кода дырочками (обозначавшими логические единицы).
Структурные свойства таблицы
- Цифры 0—9 представляются своими двоичными значениями (например, 5=01012), перед которыми стоит 00112. Таким образом, двоично-десятичные числа (BCD) превращаются в ASCII-строку с помощью простого добавления слева 00112 к каждому двоично-десятичному полубайту.
- Буквы A-Z верхнего и нижнего регистров различаются в своём представлении только одним битом, что упрощает преобразование регистра и проверку на диапазон. Буквы представляются своими порядковыми номерами в алфавите, записанными в двоичной системе счисления, перед которыми стоит 1002 (для букв верхнего регистра) или 1102 (для букв нижнего регистра).
Представление ASCII в ЭВМ
На подавляющем большинстве современных компьютеров минимально адресуемая единица памяти — 8-битный байт, поэтому там используются 8-битные, а не 7-битные символы. Обычно символ ASCII расширяют до 8 бит, просто добавляя один нулевой бит в качестве старшего.
На компьютерах системы IBM/360, однако, в случае использования ASCII применялся другой метод: 6-й бит (если считать самый младший бит первым) перемещается в 7-й, а бывший 7-й «раздваивается» и копируется и в 8-й бит, и в 6-й. Получается такая таблица [1] :
. | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .9 | .A | .B | .C | .D | .E | .F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | NUL | SOM | EOA | EOM | EQT | WRU | RU | BELL | BKSP | HT | LF | VT | FF | CR | SO | SI |
1. | DC | DC1 | DC2 | DC3 | DC4 | ERR | SYNC | LEM | S | S1 | S2 | S3 | S4 | S5 | S6 | S7 |
2. | ||||||||||||||||
3. | ||||||||||||||||
4. | BLANK | ! | « | # | $ | % | & | ‘ | ( | ) | * | + | , | — | . | / |
5. | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | ? | ||||
6. | ||||||||||||||||
7. | ||||||||||||||||
8. | ||||||||||||||||
9. | ||||||||||||||||
A. | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
B. | P | Q | R | S | T | U | V | W | X | Y | Z | [ | ] | ↑ | ← | |
C. | ||||||||||||||||
D. | ||||||||||||||||
E. | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
F. | p | q | r | s | t | u | v | w | x | y | z | ESC | DEL |
На тех компьютерах, где минимально адресуемой единицей памяти было 36-битное слово, поначалу использовали 6-битные символы (1 слово = 6 символов). После перехода на ASCII на таких компьютерах в одном слове стали размещать либо 5 семибитных символов (1 бит оставался лишним), либо 4 девятибитных символа.
ASCII-коды используются также для определения нажатой клавиши при программировании. Для стандартной QWERTY-клавиатуры таблица кодов выглядит следующим образом:
Часто бывает, в практике создания веб приложений, и при создании дизайна необходимо вставить какой-то спецсимвол, например копирайт, авторское право, стрелочку и т.д. Для этого используют ascii кодамы, которые, вставляют в контекст кода HTML. При выводе они отображаются как нормальные символы. В данной статье, ознакомимся с кодами символов ascii и научимся их применять при разработке сайтов.
Что мы сегодня узнаем?Что такое ASCII коды?Как всегда сразу по понятиям. Если вы понимаете, что такое ascii коды, отлично, можете посмотреть таблицы ascii кодов. Кому интересно узнать что такое ascii коды, выслушаем же мнение Википедии.
ASCII (англ. American Standard Code for Information Interchange) — американский стандартный код для обмена информацией. ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов.
Таблицы ASCII кодовНиже предоставленные таблицы ascii кодов символов. Если вы не совсем понимаете, как их использовать, наберитесь терпения и прочтите последний пункт статьи.
Таблица ascii кодов: ASCII (American Standard Code for Information Interchange)
Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char |
NUL | 32 | 20 | (sp) | 64 | 40 | @ | 96 | 60 | ` | ||
1 | 1 | SOH | 33 | 21 | ! | 65 | 41 | A | 97 | 61 | a |
2 | 2 | STX | 34 | 22 | « | 66 | 42 | B | 98 | 62 | b |
3 | 3 | ETX | 35 | 23 | # | 67 | 43 | C | 99 | 63 | c |
4 | 4 | EOT | 36 | 24 | $ | 68 | 44 | D | 100 | 64 | d |
5 | 5 | ENQ | 37 | 25 | % | 69 | 45 | E | 101 | 65 | e |
6 | 6 | ACK | 38 | 26 | & | 70 | 46 | F | 102 | 66 | f |
7 | 7 | BEL | 39 | 27 | ‘ | 71 | 47 | G | 103 | 67 | g |
8 | 8 | BS | 40 | 28 | ( | 72 | 48 | H | 104 | 68 | h |
9 | 9 | TAB | 41 | 29 | ) | 73 | 49 | I | 105 | 69 | i |
10 | A | LF | 42 | 2A | * | 74 | 4A | J | 106 | 6A | j |
11 | B | VT | 43 | 2B | + | 75 | 4B | K | 107 | 6B | k |
12 | C | FF | 44 | 2C | , | 76 | 4C | L | 108 | 6C | l |
13 | D | CR | 45 | 2D | – | 77 | 4D | M | 109 | 6D | m |
14 | E | SO | 46 | 2E | . | 78 | 4E | N | 110 | 6E | n |
15 | F | SI | 47 | 2F | / | 79 | 4F | O | 111 | 6F | o |
16 | 10 | DLE | 48 | 30 | 80 | 50 | P | 112 | 70 | p | |
17 | 11 | DC1 | 49 | 31 | 1 | 81 | 51 | Q | 113 | 71 | q |
18 | 12 | DC2 | 50 | 32 | 2 | 82 | 52 | R | 114 | 72 | r |
19 | 13 | DC3 | 51 | 33 | 3 | 83 | 53 | S | 115 | 73 | s |
20 | 14 | DC4 | 52 | 34 | 4 | 84 | 54 | T | 116 | 74 | t |
21 | 15 | NAK | 53 | 35 | 5 | 85 | 55 | U | 117 | 75 | u |
22 | 16 | SYN | 54 | 36 | 6 | 86 | 56 | V | 118 | 76 | v |
23 | 17 | ETB | 55 | 37 | 7 | 87 | 57 | W | 119 | 77 | w |
24 | 18 | CAN | 56 | 38 | 8 | 88 | 58 | X | 120 | 78 | x |
25 | 19 | EM | 57 | 39 | 9 | 89 | 59 | Y | 121 | 79 | y |
26 | 1A | SUB | 58 | 3A | : | 90 | 5A | Z | 122 | 7A | z |
27 | 1B | ESC | 59 | 3B | ; | 91 | 5B | [ | 123 | 7B | < |
28 | 1C | FS | 60 | 3C | 94 | 5E | ^ | 126 | 7E |
Расширенная таблица кодов ASCII
Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char |
128 | 80 | Ç | 160 | A0 | á | 192 | C0 | . | 224 | E0 | α |
129 | 81 | ü | 161 | A1 | í | 193 | C1 | 2 | 225 | E1 | ß |
130 | 82 | é | 162 | A2 | ó | 194 | C2 | 226 | E2 | Γ | |
131 | 83 | â | 163 | A3 | ú | 195 | C3 | / | 227 | E3 | ∏ |
132 | 84 | ä | 164 | A4 | ñ | 196 | C4 | ) | 228 | E4 | ∑ |
133 | 85 | à | 165 | A5 | Ñ | 197 | C5 | 3 | 229 | E5 | σ |
134 | 86 | å | 166 | A6 | ª | 198 | C6 | G | 230 | E6 | μ |
135 | 87 | ç | 167 | A7 | ° | 199 | C7 | K | 231 | E7 | τ |
136 | 88 | ê | 168 | A8 | ¿ | 200 | C8 | 9 | 232 | E8 | Φ |
137 | 89 | ë | 169 | A9 | _ | 201 | C9 | 6 | 233 | E9 | Θ |
138 | 8A | è | 170 | AA | ¬ | 202 | CA | = | 234 | EA | Ω |
139 | 8B | ï | 171 | AB | ½ | 203 | CB | ; | 235 | EB | δ |
140 | 8C | î | 172 | AC | ¼ | 204 | CC | : | 236 | EC | ∞ |
141 | 8D | ì | 173 | AD | ¡ | 205 | CD | 4 | 237 | ED | φ |
142 | 8E | Ä | 174 | AE | « | 206 | CE | > | 238 | EE | ε |
143 | 8F | Å | 175 | AF | » | 207 | CF | N | 239 | EF | ∩ |
144 | 90 | É | 176 | B0 | ░ | 208 | D0 | J | 240 | F0 | ≡ |
145 | 91 | æ | 177 | B1 | ▒ | 209 | D1 | L | 241 | F1 | ± |
146 | 92 | Æ | 178 | B2 | ▓ | 210 | D2 | H | 242 | F2 | ≥ |
147 | 93 | ô | 179 | B3 | * | 211 | D3 | F | 243 | F3 | ≤ |
148 | 94 | ö | 180 | B4 | 1 | 212 | D4 | B | 244 | F4 | ⌠ |
149 | 95 | ò | 181 | B5 | I | 213 | D5 | ? | 245 | F5 | ⚥ |
150 | 96 | û | 182 | B6 | 1 | 214 | D6 | C | 246 | F6 | ÷ |
151 | 97 | ù | 183 | B7 | D | 215 | D7 | O | 247 | F7 | ≈ |
152 | 98 | _ | 184 | B8 | @ | 216 | D8 | P | 248 | F8 | |
153 | 99 | Ö | 185 | B9 | на . Таким же образом, можно вывести любой другой символ. |
Другой случай, когда нужно реализовать подсветку кода (php, js, css, html…), пользовался регулярными выражениями в javascript, и получилось что звездочка (Asterisk), мешала работе js функции. Заменил ее ascii кодом и все стало работать как швейцарские часы.
Третий случай, когда вы создаете многоязычный сайт, в других странах, символы не входящие в стандарт их кодировки, могут выглядеть «крякозябрами», поэтому их нужно менять ascii кодами.
Как видите ascii кода пригодятся как программистам так и верстальщикам . Если у вас остались замечания или вопросы по поводу, ascii кодов, пишите в комментариях ниже.
| |||||||||||||||
| |||||||||||||||
|
Управляющие коды — преобразование в ASCII, шестнадцатеричный или десятичный
Сбор данных »Статьи» Контрольные коды
Наше бесплатное программное обеспечение ComDebug позволяет вам как собирать данные, так и управлять измерительными приборами, подключенными к вашему компьютеру. символ обозначает Ctrl
Первоначально контрольные коды использовались для таких инструментов, как телетайпы, поэтому многие коды теперь устарели.
Ввод управляющих кодов с помощью Comdebug
- Создать новый файл инструмента
- Редактировать сообщение_1
- Введите текст в поле строки приглашения. Либо
- На клавиатуре включите Num Lock и используйте цифровую клавиатуру для ввода десятичного эквивалента контрольного символа в столбец Char или
- Введите шестнадцатеричный эквивалент прямо в шестнадцатеричный столбец.
Возврат каретки, перевод строки и escape — это три, которые вы будете чаще всего сталкиваться. (Для них есть ярлыки в непечатаемом меню ComDebug.) Также обратите внимание на STX и ETX, которые используются для обозначения начала и конца сообщения от инструментов.
Комментарии или вопросы?0 | 0 | NUL | NULL | Используемый контрольный символ чтобы выполнить медиа-заполнение или заполнение по времени.Нулевые символы может быть вставлен в поток данных или удален из него без влияющие на информационное содержание этого потока. Но тогда добавление или удаление этих символов может повлиять на размещение информации и / или управление оборудованием. | ||||||
ctl-A | 1 | 1 | SOH | НАЧАЛО ЗАГОЛОВКИ | Знак управления трансмиссией используется как первый символ заголовка информационного сообщения. | |||||
ctl-B | 2 | 2 | STX | НАЧАЛО ТЕКСТА | Знак управления передачей, который предшествует тексту и который используется. чтобы завершить заголовок. | |||||
ctl-C | 3 | 3 | ETX | КОНЕЦ ТЕКСТА | Знак управления передачей, завершающий текст. | |||||
ctl-D | 4 | 4 | EOT | КОНЕЦ ПЕРЕДАЧИ | Знак управления передачей, используемый для обозначения завершение передачи одного или нескольких текстов.. | |||||
ctl-E | 5 | 5 | ENQ | ЗАПРОС | Знак управления передачей, используемый как запрос ответ удаленной станции; ответ может включать станцию идентификация и / или статус станции. Когда на общем переключенном сети передачи, первое использование ENQ после подключения установленный будет иметь значение «Кто ты?» (станция идентификация).Последующее использование ENQ может или не может включить функцию «Кто ты?», как определено по договоренности. | |||||
ctl-F | 6 | 6 | ACK | ПОДТВЕРЖДЕНИЕ | Знак управления передачей, передаваемый получатель как утвердительный ответ отправителю. | |||||
CTL-G | 7 | 7 | BEL | BELL | Управляющий символ это используется, когда необходимо привлечь внимание; он может управлять устройствами сигнализации или внимания. | |||||
ctl-H | 8 | 8 | BS | ЗАДНЯЯ ЧАСТЬ | Эффектор формата, который перемещает активную позицию на один символ назад на той же линии. | |||||
ctl-I | 9 | 9 | HT | ГОРИЗОНТАЛЬНО ТАБЛИЦА | Эффектор формата, который продвигает активную позицию к следующей заранее определенной позиции символа на той же линии. | |||||
CTL-J | 10 | A | LF | ЛИНИЯ ПОДАЧИ | Эффектор формата, который продвигает активную позицию в ту же позицию символа следующей строки. | |||||
ctl-K | 11 | B | VT | ВЕРТИКАЛЬНАЯ ТАБЛИЦА | Эффектор формата, который продвигает активную позицию в ту же позицию символа на следующей заранее определенной строке. | |||||
CTL-L | 12 | C | FF | ПОДАЧА ФОРМЫ | Эффектор формата, который продвигает активную позицию в ту же позицию символа на заранее определенной строке следующей формы или страницы. | |||||
CTL-M | 13 | D | CR | ВОЗВРАТ ПЕРЕВОЗКИ | Эффектор формата, который перемещает активную позицию на позицию первого символа на той же линии. | |||||
ctl-N | 14 | E | SO | ПЕРЕМЕЩЕНИЕ | Управляющий символ, который используется вместе с помощью SHIFT IN и ESCAPE для расширения набора графических символов кода. Это может изменить значение октетов 33–126 (реш.). Эффект этого символа при использовании методов расширения кода описан в международном стандарте ISO 2022. | |||||
ctl-O | 15 | F | SI | СДВИГ ВХОДА | Управляющий символ, который используется вместе с SHIFT OUT и ESCAPE для расширения набора графических символов кода.Он может восстановить стандартные значения следующих за ним октетов. Эффект этого символа при использовании методов расширения кода описан в международном стандарте ISO 2022. | |||||
ctl-P | 16 | 10 | DLE | ОТКЛЮЧЕНИЕ СВЯЗИ ДАННЫХ | Знак управления трансмиссией, который изменяет значение ограниченного числа следующих друг за другом символов. Он используется исключительно для предоставления дополнительных данных. функции управления трансмиссией.Только графические символы и символы управления передачей могут использоваться в последовательностях DLE. | |||||
ctl-Q | 17 | 11 | DC1 | DEVICE CONTROL ONE | Управляющий символ устройства, который в первую очередь предназначен для включения или запуска вспомогательного устройства. Если это не требуется для этой цели, его можно использовать для восстановления устройства. к основному режиму работы (см. также DC2 и DC3) или к любому другому функция управления устройством, не предусмотренная другими DC. | |||||
ctl-R | 18 | 12 | DC2 | ДВА УПРАВЛЕНИЯ УСТРОЙСТВАМИ | Управляющий символ устройства, который в первую очередь предназначен для включения или запуска вспомогательного устройства. Если это не требуется для этой цели, его можно использовать для настройки устройства. на специальный режим работы (в таком случае DC1 используется для восстановления нормальной работы) или для любых других функция управления устройством, не предусмотренная другими DC. | |||||
ctl-S | 19 | 13 | DC3 | ТРИ УПРАВЛЕНИЯ УСТРОЙСТВАМИ | Управляющий символ устройства, который в первую очередь предназначен для выключения или остановка вспомогательного устройства. Эта функция может быть остановкой вторичного уровня, например, ожидание, пауза, ожидание или остановка (в таком случае DC1 используется для восстановления нормальной работы). Если это не требуется для этой цели, его можно использовать для любого другого функция управления устройством, не предусмотренная другими DC. | |||||
ctl-T | 20 | 14 | DC4 | УПРАВЛЕНИЕ УСТРОЙСТВОМ ЧЕТЫРЕ | Управляющий символ устройства, который в первую очередь предназначен для выключения, остановка или прерывание вспомогательного устройства. Если это не требуется для этой цели, его можно использовать для любого другого функция управления устройством, не предусмотренная другими DC. | |||||
ctl-U | 21 | 15 | NAK | ОТРИЦАТЕЛЬНОЕ ПОДТВЕРЖДЕНИЕ | Знак управления передачей, передаваемый получатель как отрицательный ответ отправителю. | |||||
ctl-V | 22 | 16 | SYN | SYNCHRONOUS IDLE | Знак управления передачей, используемый система синхронной передачи при отсутствии других символ (состояние ожидания), чтобы предоставить сигнал, из которого синхронизация может быть достигнута или сохранена между данными оконечное оборудование. | |||||
ctl-W | 23 | 17 | ETB | КОНЕЦ БЛОКА ТРАНСМИССИИ | Используемый символ управления передачей. для обозначения конца блока передачи данных где данные разбиваются на такие блоки для передачи целей. | |||||
ctl-X | 24 | 18 | CAN | ОТМЕНА | Символ или первый символ последовательности, обозначающий что предшествующие ему данные ошибочны. В результате эти данные следует игнорировать. Конкретное значение этого символа должно быть определено для каждого приложение и / или между отправителем и получателем. | |||||
ctl-Y | 25 | 19 | EM | КОНЕЦ СРЕДЫ | Управляющий символ который может использоваться для идентификации физического конца носителя или конца использованной части носителя или конца желаемого часть данных, записанных на носителе.Позиция этого символа не обязательно соответствует физическому конец среды. | |||||
ctl-Z | 26 | 1A | SUB | ЗАМЕНА | Управляющий символ используется вместо символа, который был признан недействительным или ошибочным. SUB предназначен для автоматического ввода. | |||||
CTL- [ | 27 | 1B | ESC | ESCAPE | Управляющий символ который используется для обеспечения дополнительных функций управления.Он изменяет значение ограниченного числа следующих друг за другом битовые комбинации. Использование этого символа указано в международном стандарте ISO 2022. | |||||
ctl- \ | 28 | 1C | FS | РАЗДЕЛИТЕЛЬ ФАЙЛОВ | Управляющий символ используется для логического разделения и классификации данных; его конкретное значение необходимо указывать для каждого приложения. Если этот символ используется в иерархическом порядке, он ограничивает данные элемент называется файл . | 30 | 1E | RS | СЕПАРАТОР ЗАПИСИ | Управляющий символ используется для логического разделения и классификации данных; его конкретное значение необходимо указывать для каждого приложения. Если этот символ используется в иерархическом порядке, он ограничивает данные элемент называется запись . |
ctl-_ | 31 | 1F | US | РАЗДЕЛИТЕЛЬ БЛОКА | Управляющий символ используется для логического разделения и классификации данных; его конкретное значение необходимо указывать для каждого приложения.Если этот символ используется в иерархическом порядке, он ограничивает данные товар называется блок . | |||||
127 | 7F | DEL | УДАЛИТЬ | (не определено) |
Управляющие символы — GeeksforGeeks
Управляющие символы
Управляющие символы — это символы, которые не представляют печатный символ, но служат для начала определенного действия.Управляющие символы используются для выполнения любого действия, в отличие от печати печатаемого символа на дисплее. Они также используются как внутриполосная сигнализация, чтобы вызывать воздействия, отличные от расширения символа до содержимого.
С другой стороны, печатаемые символы используются для отображения символов на экране, таких как буквы, символы, числа и буквенно-цифровые символы. Существуют различные виды управляющих символов, включая управляющие символы печати, управляющие символы структурирования данных и управляющие символы передачи.Большое количество таких символов часто используется в префиксных или суффиксных разделах штрих-кода и сканеров RFID.
Тип управляющих символов был представлен в коде Бодо 1870 года: NUL и DEL. Код Мюррея 1901 года включал возврат каретки (CR) и перевод строки (LF), а различные варианты кода Бодо включали другие управляющие символы. Символ звонка (BEL), который звонил в звонок, чтобы подать сигнал руководителям, также был ранним персонажем управления телетайпом.
Управляющие символы разделены на три части 0:
- Управляющие символы ASCII —
Управляющие символы ASCII содержат код 0–31 (шестнадцатеричный 00–1F).Этот диапазон также называется набором C0. Есть два дополнительных элемента управления на 32 и 127 (шестнадцатеричный 20 и 7F). Номера таблиц ASCII 0–31 предназначены для управляющих символов, используемых для управления некоторыми периферийными устройствами, например принтерами. Например, 12 обозначает функцию подачи формы / новой страницы. Эта команда указывает принтеру перейти к началу следующей страницы.Этот набор управляющих символов охватывает множество приложений. Существуют «Эффекторы формата», которые регулируют представление простого контента. Существуют «Управление передачей» для протоколов передачи и «Управление устройствами» для запуска, запуска и остановки вспомогательных устройств.
Существуют «Разделители информации», которые управляют разными битами информации. Существуют дополнительные элементы управления для создания предупреждений, отображения конца файла / текста / кода / сценария и для обработки ошибок.
Управляющие символы ASCII используются для самых разных целей, таких как верстка текста, связь и управление устройством, и это только верхушка айсберга.
- Управляющие символы C1 —
C1 охватывает 128–159 (шестнадцатеричное 80-9F). C1 предназначен в основном для дисплеев и принтеров.Этот набор идентифицируется escape-последовательностями ANSI и VT100. НаборC1 был представлен в конце 1970-х годов. Он в основном предназначен для управления мониторами и гаджетами принтеров, несмотря на то, что часть элементов управления также делегирует различные использования. Набор C1 предназначен для использования с набором C0.
Набор C1 включает «эффекторы форматирования», управляющие горизонтальным и вертикальным смещением при печати. Существуют «Элементы управления презентацией» для обозначения разрывов строки или новой строки. Есть элементы управления «Определение области» для структуры и заполнения форм.
- Уникальные символы ISO 8859 —
ISO 8859 — это набор 8-битных наборов символов. Наборы включают различные символы латинского алфавита, кириллицы, греческого, арабского, иврита и тайского алфавита. ISO 8859 идентифицируется с наборами символов Windows («кодовые страницы ANSI»), но они действительно уникальны по отношению друг к другу.ISO 8859 имеет два важных символа: неразрывный (NBSP) и мягкий дефис (SHY). Два из них имеют атрибуты, подобные управляющим символам, несмотря на то, что на самом деле они не называются управляющими символами в ISO 8859.?
7F DEL Удалить Управляющий символ удаления является последним символом в репертуаре ASCII. Он был разработан для стирания неправильных символов. Таблица ASCII управляющих (системных, технических) кодов и символов
Первые 32 кода (десятичные числа 0–31) сохраняются в ASCII для управляющих символов . Первоначально коды были разработаны не для представления некоторой информации для печати, а для управления устройствами (такими как принтеры), которые используют ASCII , или для предоставления метаинформации о потоках данных, например, о тех, которые хранятся на магнитной ленте.
Таблица ASCII (управляющие символы)
Дек БИН ОКТЯБРЬ ШЕСТИГР. Char 000 0000 0000 0 00 NUL — нулевой символ. Символ Юникода: ␀
MD5: cfcd208495d565ef66e7dff9f98764da
SHA1: b6589fc6ab0dc82cf12099d1c2d40ab994e8410c001 0000 0001 1 01 SOH — начало заголовка.Символ Юникода: ␁
MD5: c4ca4238a0b0dcc509a6f75849b
SHA1: 356a192b7913b04c54574d18c28d46e6395428ab002 0000 0010 2 02 STX — начало текста. Символ Юникода: ␂
MD5: c81e728d9d4c2f636f067f89cc14862c
SHA1: da4b9237bacccdf19c0760cab7aec4a8359010b0003 0000 0011 3 03 ETX — конец текста.Символ Юникода: ␃
MD5: eccbc87e4b5ce2fe28308fd9f2a7baf3
SHA1: 77de68daecd823babbb58edb1c8e14d7106e83bb004 0000 0100 4 04 EOT — конец передачи. Символ Юникода: ␄
MD5: a87ff679a2f3e71d9181a67b7542122c
SHA1: 1b64538a467d07372d45eb05abc2031647a
005 0000 0101 5 05 ENQ — Запрос.Символ Юникода: ␅
MD5: e4da3b7fbbce2345d7772b0674a318d5
SHA1: ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4006 0000 0110 6 06 ACK — Подтвердить. Символ Юникода: ␆
MD5: 1679091c5a880faf6fb5e6087eb1b2dc
SHA1: c1dfd96eea8cc2b62785275bca38ac261256e278007 0000 0111 7 07 BEL — звонок, тревога.Символ Юникода: ␇
MD5: 8f14e45fceea167a5a36dedd4bea2543
SHA1: 902ba3cda1883801594b6e1b452790cc53948fda008 0000 1000 10 08 BS — Backspace. Символ Юникода: ␈
MD5: c9f0f895fb98ab9159f51fd0297e236d
SHA1: fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f009 0000 1001 11 09 HT — табуляция символов, горизонтальная табуляция.Символ Юникода: ␉
MD5: 45c48cce2e2d7fbdea1afc51c7c6ad26
SHA1: 0ade7c2cf97f75d009975f4d720d1fa6c19f4897010 0000 1010 12 0A LF — перевод строки. Символ Юникода: ␊
MD5: d3d9446802a44259755d38e6d163e820
SHA1: b1d5781111d84f7b3fe45a0852e59758cd7a87e5011 0000 1011 13 0Б VT — Строчная таблица, Вертикальная таблица.Символ Юникода: ␋ db
MD5: 6512bd43d9caa6e02c990b0a82652dca
SHA1: 17ba073b80f37c5fbc89b870084b 012 0000 1100 14 0C FF — подача формы. Символ Юникода: ␌
MD5: c20ad4d76fe97759aa27a0c99bff6710
SHA1: 7b52009b64fd0a2a49e6d8a939753077792b0554013 0000 1101 15 0D CR — возврат каретки.Символ Юникода: ␍
MD5: c51ce410c124a10e0db5e4b97fc2af39
SHA1: bd307a3ec329e10a2cff8fb87480823da114f8f4014 0000 1110 16 0E ТАК — сдвиг. Символ Юникода: ␎ eabf3dabf9f5ea6abdbcbc107ac3b
MD5: aab3238922bcc25a6f606eb525ffdc56
SHA1: fa35e1015 0000 1111 17 0F SI — Shift In.Символ Юникода: ␏
MD5: 9bf31c7ff062936a96d3c8bd1f8f2ff3
SHA1: f1abd670358e036c31296e66b3b66c382ac00812016 0001 0000 20 10 DLE — выход из канала передачи данных. Символ Юникода: ␐
MD5: c74d97b01eae257e44aa9d5bade97baf
SHA1: 1574bddb75c78a6fd2251d61e2993b5146201319017 0001 0001 21 11 DC1 — Device Control One (XON).Символ Юникода: ␑
MD5: 70efdf2ec9b086079795c442636b55fb
SHA1: 0716d9708d321ffb6a00818614779e7795c018 0001 0010 22 12 DC2 — Управление устройством два. Символ Юникода: ␒
MD5: 6f4922f45568161a8cdf4ad2299f6d23
SHA1: 9e6a55b6b4563e652a23be9d623ca5055c356940019 0001 0011 23 13 DC3 — устройство управления 3 (XOFF).Символ Юникода: ␓ 5f7439f8ffabdffc4
MD5: 1f0e3dad99
SHA1: b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f020 0001 0100 24 14 DC4 — Четвертое управление устройством. Символ Юникода: ␔ ad7bbcb6cf72875e8e8207dcfba80173f7c
MD5: 98f13708210194c475687be6106a3b84
SHA1:021 0001 0101 25 15 NAK — отрицательное подтверждение.Символ Юникода: ␕
MD5: 3c59dc048e8850243be8079a5c74d079
SHA1: 472b07b9fcf2c2451e8781e944bf5f77cd8457c8022 0001 0110 26 16 SYN — синхронный холостой ход. Символ Юникода: ␖
MD5: b6d767d2f8ed5d21a44b0e5886680cb9
SHA1: 12c6fc06c99a462375eeb3f43dfd832b08ca9e17023 0001 0111 27 17 ETB — конец блока передачи.Символ Юникода: ␗
MD5: 37693cfc748049e45d87b8c7d8b9aacd
SHA1: d435a6cdd786300dff204ee7c2ef942d3e9034e2024 0001 1000 30 18 CAN — Отмена. Символ Юникода: ␘
MD5: 1ff1de774005f8da13f42943881c655f
SHA1: 4d134bc072212ace2df385dae143139da74ec0ef025 0001 1001 31 19 EM — Конец среды.Символ Юникода: ␙
MD5: 8e296a067a37563370ded05f5a3bf3ec
SHA1: f6e1126cedebf23e1463aee73f9df08783640400026 0001 1010 32 1A SUB — Замена. Символ Юникода: ␚
MD5: 4e732ced3463d06de0ca9a15b6153677
SHA1: 887309d048beef83ad3eabf2a79a64a389ab1c9f027 0001 1011 33 1Б ESC — побег.Символ Юникода: ␛
MD5: 02e74f10e0327ad868d138f2b4fdd6f0
SHA1: bc33ea4e26e5e1af1408321416956113a4658763028 0001 1100 34 1С FS — Разделитель файлов. Символ Юникода: ␜
MD5: 33e75ff09dd601bbe69f3510389
SHA1: 0a57cb53ba59c46fc4b6a38a87c78d84028029 0001 1101 35 1D GS — Разделитель групп.Символ Юникода: ␝
MD5: 6ea9ab1baa0efb9e140c317e21b
SHA1: 7719a1c782a1ba91c031a682a0a2f8658209adbf030 0001 1110 36 1E RS — Разделитель записей. Символ Юникода: ␞
MD5: 34173cb38f07f89ddbebc2ac03f
SHA1: 22d200f8670dbdb3e253a90eee5098477c95c23d031 0001 1111 37 1 этаж США — Разделитель единиц.Символ Юникода: ␟
MD5: c16a5320fa475530d9583c34fd356ef5
SHA1: 632667547e7cd3e0466547863e1207a8c0c0c549127 0111 1111 177 7F DEL — Удалить символ. Символ Юникода: ␡
MD5: ec5decca5ed3d6b8079e2e7e7bacc9f2
SHA1: 008451a05e1e7aa32c75119df950d405265e0904Хорошо, давайте посмотрим на пример.Символ 10 представляет функцию «перевода строки» (которая заставляет принтер продвигать бумагу вперед). Символ 8 представляет собой «backspace». RFC 2822 может называться управляющих символов , которые не включают возврат каретки, перевода строки или пробел как непробельные управляющие символы . Единственное исключение составляют управляющие символы , которые предписывают элементарное строчно-ориентированное форматирование. ASCII не устанавливает никакого механизма, целью которого было бы описание структуры текста или внешнего вида в документе.Некоторые другие схемы, такие как языки разметки, макет и форматирование адресной страницы и документа.
Только краткие описательные фразы использовались для каждого из управляющих символов исходного ASCII . Эта неопределенность не всегда была случайной. Иногда он создавался специально, например, в тех случаях, когда символ использовался немного в оконечной ссылке, чем в потоке данных. Однако иногда это было явно случайно, например, в случае со значением «удалить».
Teletype Model 33 ASR можно смело назвать наиболее значимым единичным устройством в сфере интерпретации этих символов. Модель 33 ASR Teletype была печатным терминалом с доступной опцией чтения / перфорации бумажной ленты. Для долговременного хранения программ до 1980-х годов много использовалась бумажная лента. Это было довольно дешево и почему-то менее хрупко, чем магнитная лента. В частности, назначения машин Teletype Model 33 для кодов 17 (DC1, Control-Q , также известного как XON), 19 (DC3, Control-S , также известного как XOFF) и char 127 (Delete), которые фактически стали стандартами.У Model 33 была еще одна причина быть популярной в то время. Он брал описание Control-G (код 7, BEL, что означает звуковой сигнал тревоги оператора). По сути, это было своего рода устройство с настоящим звонком, в который звонили при получении символа BEL. Поскольку на верхней части клавиши для клавиши O также был изображен символ стрелки влево (из ASCII-1963, который имел именно этот символ вместо подчеркивания), несовместимое использование кода 15 ( Control-O , Shift In) интерпретировалось как » удалить предыдущий символ »также был заимствован многими системами разделения времени того времени.Однако через некоторое время они стали игнорировать это.
Когда Control-S (XOFF, сокращение для передачи выкл.) Был получен телетайпом 33 ASR, оснащенным автоматическим считывателем бумажной ленты, он остановил считыватель ленты; прием Control-Q (XON, «передача включена») возобновил считывание ленты. Некоторые компьютерные операционные системы того времени заимствовали такую технику. Это называлось сигналом «рукопожатия», который предупреждал отправителя об отмене передачи из-за надвигающегося переполнения; в настоящее время его можно найти во многих системах как метод ручного управления выводом.Некоторые системы сохранили первоначальную функцию Control-S без изменений, но они заменили Control-Q вторым Control-S для возобновления вывода. 33 ASR также можно настроить на использование Control-R (DC2) и Control-T (DC4) для запуска и остановки перфорации ленты; на некоторых устройствах, у которых была такая функция, соответствующий управляющий символ Буква на крышке клавиатуры над буквой была TAPE и TAPE соответственно.
В телетайпе не было функции, которая позволяла бы наклонять голову назад.Принимая это во внимание, он не ставил дополнительную клавишу на клавиатуре для отправки BS (backspace). Для этого была еще одна вещь: клавиша с названием «rubout», которая отправляла код 127 (DEL). Этот ключ был создан для того, чтобы исправить ошибки на бумажной ленте, набранной вручную: оператору просто нужно было нажать кнопку на перфораторе, чтобы скопировать его. Затем оператор набирал протирание, а тот, в свою очередь, пробивал все пробелы, оставшиеся после удара, и заменял ошибку символом, который изначально предполагалось игнорировать.Корпорация Digital Equipment Corporation использовала телетайпы для не очень дорогих компьютеров. Таким образом, системы должны были использовать доступную клавишу, а затем код DEL, чтобы стереть предыдущий символ. По этой причине видеотерминалы DEC (по умолчанию) отправляли код DEL для клавиши с пометкой «Backspace», в то время как клавиша с пометкой «Delete» отправляла escape-последовательность, в то время как многие другие терминалы отправляли BS для клавиши Backspace. Драйвер терминала Unix может использовать только один код для резервного копирования.Функция резервного копирования здесь может быть настроена либо на BS, либо на DEL, но не на них обоих. Результатом использования обоих ключей был бы длительный изнурительный период раздражения, когда вам приходилось исправлять ошибку с учетом используемого вами терминала (современные оболочки используют readline, поэтому они соответственно понимают оба кода). Предположение, что ни один ключ не отправил BS, привело к использованию Control + H для других целей, таких как команда «help» в Emacs .
Много нового значения получили коды управления, которые изначально имели совершенно другие функции, чем новые. Один из ярких примеров — символ «escape» (ESC, код 27). Первоначально его функция заключалась в том, чтобы разрешить отправку других управляющих символов как литералов вместо обращения к их значению. То же значение «escape-символа» можно встретить в кодировках URL-адресов, строках языка C, и некоторых других системах, где определенные символы имеют свое стабильное значение.Однако время летит, появляются новые технологии, поэтому этот смысл заимствован. Проще говоря, это было внутренне изменено. В настоящее время ESC, отправленный на терминал, обычно означает начало последовательности команд, обычно в форме так называемого «escape-кода ANSI» (или, лучше сказать, «Control Sequence Introducer») из ECMA-48 (1972) и его продолжатели, начинающиеся с ESC, за которыми следует символ «[» (левая квадратная скобка). ESC, отправленный с терминала, обычно используется как внеполосный символ. Его функция — завершить операцию, как в текстовых редакторах TECO и vi.Обычно ESC делает запрос, чтобы прервать свою текущую операцию или полностью выйти (завершить) в графическом интерфейсе пользователя (GUI) и оконных системах.
В дополнение к их историческому использованию, неопределенность, включенная в партию управляющих символов , создавала определенные проблемы при передаче файлов « обычного текста » между системами. Мы полагаем, что наиболее ярким примером этого является проблема новой строки, с которой сталкиваются разные операционные системы. Для телетайпов требуется, чтобы строка текста была завершена как «Возврат каретки» (который перемещает печатающую головку в начало строки), так и «Подача строки» (которая перемещает бумагу на одну строку вперед без перемещения печатающей головки).Название «Возврат каретки» имеет собственное значение. В связи с этим мы должны помнить тот факт, что на ручной пишущей машинке каретка, удерживающая бумагу, перемещалась, в то время как положение, в котором печатные полосы касались ленты, оставалось неподвижным. Всю каретку пришлось сдвинуть (отвести назад) вправо, чтобы расположить левое поле бумаги для следующей строки.
Оба символа использовались операционными системами DEC (OS / 8, RT-11, RSX-11, RSTS, TOPS-10 и т. Д.) Для обозначения конца строки.Это было необходимо для работы консольного устройства (обычно это телетайпы). Соглашение было установлено настолько хорошо, что обратная совместимость вынудила продолжить соглашение. Это произошло в то время, когда появились так называемые «стеклянные TTY» (которые тогда назывались CRT или терминалами). Гэри Килдалл нашел свое вдохновение для разработки CP / M в некоторых соглашениях интерфейса командной строки, используемых в DEC RT-11. До появления PC DOS в 1981 году IBM не принимала в этом значительного участия. Для этого была причина.Дело в том, что операционных систем 1970-х годов использовали EBCDIC, а не ASCII . Они были ориентированы в направлении ввода перфокарт и вывода на строчный принтер. Идея возврата каретки на нем была абсолютно бессмысленна. IBM PC DOS (также продаваемая Microsoft как MS-DOS) повезло, что она была свободно основана на CP / M, поэтому благодаря этому факту она унаследовала это соглашение. Windows унаследовала его от MS-DOS.
Некоторые нежелательные сложности и вопросы (например, о том, как интерпретировать каждый символ, когда он встречается отдельно) возникли из-за того, что требовалось два символа для обозначения конца строки .Чтобы упростить задачу простого текста, потоков данных, включая файлы, в Multics использовали только перевод строки (LF) в качестве признака конца строки. Unix, Unix-подобные системы и системы Amiga позаимствовали это соглашение от Multics. Однако в исходных версиях Macintosh OS, Apple DOS и ProDOS в качестве ограничителя строки использовался только возврат каретки (CR). Стоит отметить, что, поскольку Apple заменила эти операционные системы операционной системой macOS на базе Unix , в настоящее время ими также используется перевод строки (LF).Radio Shack TRS-80 также использовал одиночный CR для завершения линий.
Компьютеры, которые были назначены для ARPANET, включали машины под управлением операционных систем, например TOPS-10 и TENEX, использующие окончания строк CR-LF , машины под управлением операционных систем, например Multics, использующие окончания строк LF, и машины под управлением операционных систем, для пример OS / 360, который представляет строки как количество символов, за которыми следуют символы строки, и использует EBCDIC, а не ASCII. ASCII «Сетевой виртуальный терминал» (NVT) был определен протоколом Telnet.Таким образом, соединения между хостами с различными соглашениями об окончании строк и наборами символов могут поддерживаться с помощью передачи стандартного текстового формата по сети. Telnet использовал ASCII вместе с окончанием строки CR-LF . Программное обеспечение, использующее другие соглашения, будет переводить между местными соглашениями и NVT. Протокол передачи файлов принял протокол Telnet. Частью этого было также использование сетевого виртуального терминала. Он был предназначен для использования при передаче команд и данных в стандартном режиме ASCII .Это делает реализацию этих протоколов довольно сложной, а также реализацию некоторых других сетевых протоколов, таких как используемые для электронной почты и World Wide Web, в системах, не использующих соглашение NVT CR-LF о завершении строки.
Монитор PDP-6 и его устройство продолжения PDP-10 TOPS-10 использовали Control-Z (SUB) в качестве индикатора конца файла для ввода с терминала. CP / M и некоторые другие операционные системы отслеживали длину файла только в единицах дисковых блоков. Они использовали Control-Z , чтобы отметить конец фактического текста в файле.Для достижения таких целей EOF, или конец файла, использовался в разговорной речи и традиционно как трехбуквенный акроним для Control-Z вместо SUBstitute. Было много причин, по которым код конца текста (ETX), также известный как Control-C , был неподходящим. Использование Z в качестве управляющего кода для завершения файла аналогично завершению алфавита и служит довольно удобным мнемоническим помощником. Исторически распространенное и все еще доминирующее соглашение использует соглашение кода ETX для прерывания и остановки программы через поток входных данных, обычно с клавиатуры .
В соглашениях библиотеки C и Unix для завершения текстовых строк используется нулевой символ; такие строки с завершающим нулем могут называться сокращенно ASCIZ или ASCIIZ, где Z означает «ноль».
разделитель — большинство управляющих символов ASCII устарели?
Коды управления ASCII не устарели. В наши дни они не используются так часто, потому что технологии, которые сделали их такими полезными, больше не являются основными, а являются технологическими улучшениями в технологиях связи (USB, Ethernet, WiFi, сотовая связь в сетях 3G и выше и т. Д.), а также улучшения в производстве интегральных схем (увеличение количества компонентов на квадратный миллиметр, улучшения архитектуры ЦП, большая миниатюризация компонентов, таких как система на кристалле), а также улучшения протоколов.
Однако в мире Интернета вещей все еще применяются те же технологические соображения, которые повлияли на разработку этих кодов:
- малые процессоры с ограниченным ОЗУ и хранилищем
- связь с низкой пропускной способностью по медленным путям
Существует несколько управляющих кодов ASCII, предназначенных для использования в структурировании текста.В разделе Википедии управляющие коды C0 и C1, основные управляющие коды ASCII описываются управляющие коды разделителя, FS (разделитель файлов), GS (разделитель групп), RS (разделитель записей) и разделитель единиц США.
Может использоваться как разделитель для обозначения полей структур данных. Если используется для иерархических уровней США — самый низкий уровень (разделение обычного текста элементы данных), в то время как RS, GS и FS имеют возрастающий уровень для разделения группы, состоящие из предметов нижележащего уровня. Информационный формат Unix использует США, за которыми следует необязательный перевод страницы и разрыв строки, чтобы отметить начало узла.[14]
MARC 21 использует US в качестве разделителя подполей, RS в качестве ограничителя поля и GS как ограничитель рекорда. [15]
В текущей редакции IPTC 7901, если они не используются для других для целей США рекомендуется использовать в качестве разделителя столбцов в таблицах, FS как «центральный разделитель полей» в таблицах, а GS и RS соответственно для обозначения следующего пробела или дефиса-минуса как неразрывный или мягкий соответственно (в наборах символов, не поставляющих явные символы NBSP и SHY) .2
См. Также описание в RFC20, формат ASCII для сетевого обмена, в котором FS, GS, RS и US описаны как:
FS (разделитель файлов), GS (разделитель групп), RS (разделитель записей) и US (разделитель единиц): эти разделители информации могут использоваться в данных по желанию, за исключением того, что их иерархические отношения должны быть такими: FS является наиболее инклюзивным, тогда GS, затем RS и США — наименее инклюзивный.(Содержание и продолжительность Файл, Группа, Запись или Единица не указаны.)
Тема IPTC 7901 в Википедии описывает использование управляющих символов в сообщениях службы новостей, начиная с формального утверждения протокола в 1979 году, что похоже на протокол RSS-канала. Фактическая спецификация доступна на веб-сайте IPTC как Рекомендуемый формат сообщений IPTC, 1995.
Набор символов US ASCII
Набор символов US ASCIIНабор символов US ASCII
US ASCII, ANSI X3.4-1986 (Международная справочная версия ISO 646)Коды от 0 до 31 и 127 (десятичные) являются непечатаемыми управляющими символами.
Код 32 (десятичный) — это непечатаемый символ пробела. Коды с 33 по 126 (десятичные) представляют собой печатные графические символы.Легенда: Char Печатное представление символа, если есть дек. Десятичный код символа. Строка / столбец Десятичное представление строки / столбца для символа окт. восьмеричный код символа (с основанием 8). Hex Шестнадцатеричный код символа (по основанию 16).
Char Dec Col / Row Oct Hex Имя и описание
0 00/00 00 00 NUL (Ctrl- @) NULL 1 00/01 01 01 SOH (Ctrl-A) НАЧАЛО ЗАГОЛОВКИ 2 00/02 02 02 STX (Ctrl-B) НАЧАЛО ТЕКСТА 3 00/03 03 03 ETX (Ctrl-C) КОНЕЦ ТЕКСТА 4 00/04 04 04 EOT (Ctrl-D) КОНЕЦ ПЕРЕДАЧИ 5 00/05 05 05 ENQ (Ctrl-E) ЗАПРОС 6 00/06 06 06 ACK (Ctrl-F) ПОДТВЕРЖДЕНИЕ 7 00/07 07 07 БЕЛ (Ctrl-G) ЗВОНК (гудок) 8 00/08 10 08 BS (Ctrl-H) НАЗАД 9 00/09 11 09 HT (Ctrl-I) ГОРИЗОНТАЛЬНАЯ ВКЛАДКА 10 00/10 12 0A LF (Ctrl-J) ПОДАЧА ЛИНИИ 11 00/11 13 0B VT (Ctrl-K) ВЕРТИКАЛЬНАЯ ВКЛАДКА 12 00/12 14 0C FF (Ctrl-L) ПОДАЧА ФОРМЫ 13 00/13 15 0D CR (Ctrl-M) ВОЗВРАТ ПЕРЕВОЗКИ 14 00/14 16 0E SO (Ctrl-N) SHIFT OUT 15 00/15 17 0F SI (Ctrl-O) SHIFT IN 16 01/00 20 10 DLE (Ctrl-P) ОТКЛЮЧЕНИЕ СВЯЗИ ДАННЫХ 17 01/01 21 11 DC1 (Ctrl-Q) УПРАВЛЕНИЕ УСТРОЙСТВОМ 1 (XON) 18 01/02 22 12 DC2 (Ctrl-R) УПРАВЛЕНИЕ УСТРОЙСТВОМ 2 19 01/03 23 13 DC3 (Ctrl-S) УПРАВЛЕНИЕ УСТРОЙСТВОМ 3 (XOFF) 20 01/04 24 14 DC4 (Ctrl-T) УПРАВЛЕНИЕ УСТРОЙСТВОМ 4 21 01/05 25 15 НАК (Ctrl-U) ОТРИЦАТЕЛЬНОЕ ПОДТВЕРЖДЕНИЕ 22 01/06 26 16 SYN (Ctrl-V) СИНХРОННЫЙ ПРОХОЖДЕНИЕ 23 01/07 27 17 ETB (Ctrl-W) КОНЕЦ БЛОКА ТРАНСМИССИИ 24 01/08 30 18 CAN (Ctrl-X) ОТМЕНА 25 01/09 31 19 EM (Ctrl-Y) КОНЕЦ СРЕДЫ 26 01/10 32 1А ПОД (Ctrl-Z) ЗАМЕНИТЬ 27 01/11 33 1B ESC (Ctrl- [) ESCAPE 28 01/12 34 1С ФС (Ctrl- \) РАЗДЕЛИТЕЛЬ ФАЙЛОВ 29 01/13 35 1D GS (Ctrl-]) ГРУППОВОЙ СЕПАРАТОР 30 01/14 36 1E RS (Ctrl- ^) СЕПАРАТОР ЗАПИСЕЙ 31.01.15 37 1F US (Ctrl-_) СЕПАРАТОР БЛОКА
() 32 02/00 40 20 ПРОБЕЛ (!) 33 02/01 41 21 Восклицательный знак (") 34 02/02 42 22 ЦИТАТИРОВАННЫЙ ЗНАК (#) 35 02/03 43 23 НОМЕРНЫЙ ЗНАК ($) 36 02/04 44 ЗНАК 24 ДОЛЛАРА (%) 37 02/05 45 25 ПРОЦЕНТНЫЙ ЗНАК (&) 38 02/06 46 26 АМПЕРСАНД (') 39 02/07 47 27 АПОСТРОФ (() 40 02/08 50 28 ЛЕВЫЙ ПАРЕНТЕЗ ()) 41 02/09 51 29 ПРАВЫЙ ПАРЕНТЕЗ (*) 42 02/10 52 2А АСТЕРИСК (+) 43 02/11 53 2B ЗНАК ПЛЮС (,) 44 02/12 54 2C ЗАПЯТАЯ (-) 45 02/13 55 2D ДЕФИС, ЗНАК МИНУС (.) 46 02/14 56 2E ПЕРИОД, ПОЛНАЯ ОСТАНОВКА (/) 47 02/15 57 2F SOLIDUS, SLASH (0) 48 03/00 60 30 ЦИФР НУЛЬ (1) 49 03/01 61 31 ЦИФРА ОДИН (2) 50 03/02 62 32 ЦИФРА ДВА (3) 51 03/03 63 33 ЦИФРА ТРЕТЬЯ (4) 52 03/04 64 34 ЦИФРА ЧЕТЫРЕ (5) 53 03/05 65 35 ЦИФРА ПЯТЬ (6) 54 03/06 66 36 ШЕСТЬ ЦИФРОВ (7) 55 03/07 67 37 СЕМЬ ЦИФРОВ (8) 56 03/08 70 38 ЦИФРА ВОСЬМАЯ (9) 57 03/09 71 39 ЦИФРА ДЕВЯТЬ (:) 58 03/10 72 3А ТОЛСТОВКА (;) 59 03/11 73 3B SEMICOLON (<) 60 03/12 74 3C МЕНЬШЕ ЗНАКА, ЛЕВЫЙ УГЛОВОЙ КРОНШТЕЙН (=) 61 03/13 75 3D ЗНАК РАВНО (>) 62 03/14 76 3E БОЛЬШЕ, ЧЕМ ЗНАК, ПРАВЫЙ УГОЛ КРОНШТЕЙНА (?) 63 15/3 77 3F ВОПРОСНЫЙ ЗНАК (@) 64 04/00 100 40 КОММЕРЧЕСКАЯ ИНФОРМАЦИЯ НА ЗНАКЕ (A) 65 04/01 101 41 ЗАГЛАВНАЯ БУКВА A (B) 66 04/02 102 42 ЗАГЛАВНАЯ БУКВА B (C) 67 04/03 103 43 ЗАГЛАВНАЯ БУКВА C (D) 68 04/04 104 44 ЗАГЛАВНАЯ БУКВА D (E) 69 04/05 105 45 ЗАГЛАВНАЯ БУКВА E (F) 70 04/06 106 46 ЗАГЛАВНАЯ БУКВА F (G) 71 04/07 107 47 ЗАГЛАВНАЯ БУКВА G (H) 72 04/08 110 48 ЗАГЛАВНАЯ БУКВА H (I) 73 04/09 111 49 ЗАГЛАВНАЯ БУКВА I (J) 74 04/10 112 4A ЗАГЛАВНАЯ БУКВА J (K) 75 04/11 113 4B ЗАГЛАВНАЯ БУКВА K (L) 76 04/12 114 4C ЗАГЛАВНАЯ БУКВА L (M) 77 04/13 115 4D ЗАГЛАВНАЯ БУКВА M (N) 78 04/14 116 4E ЗАГЛАВНАЯ БУКВА N (O) 79 04/15 117 4F ЗАГЛАВНАЯ БУКВА O (P) 80 05/00 120 50 ЗАГЛАВНАЯ БУКВА P (Q) 81 05/01 121 51 ЗАГЛАВНАЯ БУКВА Q (R) 82 05/02 122 52 ЗАГЛАВНАЯ БУКВА R (S) 83 05/03 123 53 ЗАГЛАВНАЯ БУКВА S (T) 84 05/04 124 54 ЗАГЛАВНАЯ БУКВА T (U) 85 05/05 125 55 ЗАГЛАВНАЯ БУКВА U (V) 86 05/06 126 56 ЗАГЛАВНАЯ БУКВА V (W) 87 05/07 127 57 ЗАГЛАВНАЯ БУКВА W (X) 88 05/08 130 58 ЗАГЛАВНАЯ БУКВА X (Y) 89 05/09 131 59 ЗАГЛАВНАЯ БУКВА Y (Z) 90 05/10 132 5A ЗАГЛАВНАЯ БУКВА Z ([) 91 05/11 133 5B КРОНШТЕЙН КВАДРАТНЫЙ ЛЕВЫЙ (\) 92 05/12 134 5C REVERSE SOLIDUS (BACKSLASH) (]) 93 05/13 135 5D ПРАВЫЙ КВАДРАТНЫЙ КРОНШТЕЙН (^) 94 05/14 136 5E CIRCUMFLEX ACCENT (_) 95 05/15 137 5F НИЖНЯЯ ЛИНИЯ, НИЖНЯЯ (`) 96 06/00 140 60 ТЯЖЕЛЫЙ АКЦЕНТ (a) 97 06/01 141 61 СТРОЧНАЯ БУКВА a (b) 98 06/02 142 62 СТРОЧНАЯ БУКВА b (c) 99 06/03 143 63 СТРОЧНАЯ БУКВА c (d) 100 06/04 144 64 СТРОЧНАЯ БУКВА d (e) 101 06/05 145 65 СТРОЧНАЯ БУКВА e (f) 102 06/06 146 66 СТРОЧНАЯ БУКВА f (g) 103 06/07 147 67 СТРОЧНАЯ БУКВА g (h) 104 06/08 150 68 СТРОЧНАЯ БУКВА h (i) 105 06/09 151 69 СТРОЧНАЯ БУКВА i (j) 106 06/10 152 6A СТРОЧНАЯ БУКВА j (k) 107 06/11 153 6B СТРОЧНАЯ БУКВА k (l) 108 06/12 154 6C СТРОЧНАЯ БУКВА l (м) 109 06/13 155 6D СТРОЧНАЯ БУКВА м (n) 110 06/14 156 6E СТРОЧНАЯ БУКВА n (o) 111 06/15 157 6F СТРОЧНАЯ БУКВА o (p) 112 07/00 160 70 СТРОЧНАЯ БУКВА p (q) 113 07/01 161 71 СТРОЧНАЯ БУКВА q (r) 114 07/02 162 72 СТРОЧНАЯ БУКВА r (s) 115 07/03 163 73 СТРОЧНЫЕ БУКВЫ s (t) 116 07/04 164 74 СТРОЧНАЯ БУКВА t (u) 117 07/05 165 75 СТРОЧНАЯ БУКВА u (v) 118 07/06 166 76 СТРОЧНАЯ БУКВА v (w) 119 07/07 167 77 СТРОЧНАЯ БУКВА w (x) 120 07/08 170 78 СТРОЧНАЯ БУКВА x (y) 121 07/09 171 79 СТРОЧНАЯ БУКВА y (z) 122 07/10 172 7A СТРОЧНАЯ БУКВА z ({) 123 07/11 173 7B КРОНШТЕЙН ЛЕВЫЙ ИЗВИГАТЕЛЬНЫЙ, КРОНШТЕЙН ЛЕВЫЙ (|) 124 07/12 174 7C ВЕРТИКАЛЬНАЯ ЛИНИЯ, ВЕРТИКАЛЬНАЯ ШИНА (}) 125 07/13 175 7D ПРАВЫЙ КРОНШТЕЙН, ПРАВЫЙ КРОНШТЕЙН (~) 126 07/14 176 7E ТИЛЬДА
127 15.