Заменить символ
В компьютерных данных замещающий символ (␚) — это управляющий символ , который используется для дополнения передаваемых данных с целью отправки их блоками фиксированного размера или для замены символа, признанного недействительным, ошибочным или непредставимым. на данном устройстве. Он также используется в качестве escape-последовательности в некоторых языках программирования .
В наборе символов ASCII этот символ кодируется числом 26 ( 1А шестнадцатеричный ). Стандартные клавиатуры передают этот код, когда Ctrl и Z клавиши нажимаются одновременно ( Ctrl+Z , часто документируемый по соглашению как ^З ) . [1] Unicode наследует этот символ от ASCII, но рекомендует использовать вместо него символ замены (�, U+FFFD) для представления недекодируемых входных данных, если выходная кодировка совместима с ним.
Использование
[ редактировать ]Конец файла
[ редактировать ]Исторически сложилось так, что под PDP-6 монитором [2] РТ-11 , ВМС и ТОПС-10 , [3] PC CP/M 1 и 2 а в ранних операционных системах (и их производных, таких как MP/M ) необходимо было явно отмечать конец файла (EOF), поскольку собственная файловая система не могла сама записать точный размер файла; файлы размещались в экстентах (записях) фиксированного размера, обычно в конце каждого файла оставлялось некоторое выделенное, но неиспользуемое пространство. [4] [5] [6] [7] Это дополнительное пространство было заполнено 1A 16 ( шестнадцатеричных ) символов в формате CP/M. Расширенные файловые системы CP/M, используемые в CP/M 3 и более поздних версиях (и их производные, такие как Concurrent CP/M , Concurrent DOS и DOS Plus ), поддерживали байтовые файлы. [8] [9] так что это больше не было требованием, но осталось соглашением (особенно для текстовых файлов ), чтобы обеспечить обратную совместимость.
В CP/M , 86-DOS , MS-DOS , PC DOS , DR-DOS и их различных производных символ SUB также использовался для обозначения конца потока символов. [ нужна ссылка ] и, таким образом, используется для завершения пользовательского ввода в интерактивном окне командной строки (и поэтому часто используется для завершения перенаправления консольного ввода, например, инициированного командой COPY CON: TYPEDTXT.TXT
).
Хотя технически больше не требуется указывать конец файла, с 2017 года многие текстовые редакторы [ который? ] и языки программ по-прежнему поддерживают это соглашение, или могут быть настроены на вставку этого символа в конец файла при редактировании, или, по крайней мере, правильно справляются с ним в текстовых файлах. [ нужна ссылка ] В таких случаях его часто называют «мягким» EOF, поскольку он не обязательно представляет физический конец файла, а скорее является маркером, указывающим, что «за этой точкой нет полезных данных». В действительности, за пределами этого символа может существовать больше данных вплоть до фактического конца данных в файловой системе, поэтому его можно использовать для сокрытия содержимого файла, когда файл вводится в консоли или открывается в редакторах. Многие стандарты форматов файлов (например, PNG или GIF ) включают в свои заголовки символ SUB для выполнения именно этой функции. Некоторые современные форматы текстовых файлов (например, CSV-1203 [10] ) по-прежнему рекомендуют добавлять завершающий символ EOF в качестве последнего символа в файле. Однако, набрав Control+ Z не встраивает символ EOF в файл ни в DOS , ни в Windows этих систем не , а API используют этот символ для обозначения фактического конца файла.
Некоторые языки программирования (например, Visual Basic ) не будут читать дальше «мягкого» EOF при использовании встроенных примитивов чтения текстовых файлов (INPUT, LINE INPUT и т. д.), [ нужна ссылка ] и необходимо использовать альтернативные методы, например, открытие файла в двоичном режиме или использование объекта файловой системы для выхода за его пределы.
Символ 26 использовался для обозначения «конца файла», хотя ASCII называет этот символ «заменой» и имеет другие символы для обозначения «конца файла». Номер 28, который называется « Разделитель файлов », также использовался для аналогичных целей.
Другое использование
[ редактировать ]В Unix -подобных операционных системах этот символ обычно используется в оболочках , чтобы пользователь мог приостановить текущий интерактивный процесс. [11] Затем приостановленный процесс можно возобновить в приоритетном (интерактивном) режиме, или заставить возобновить выполнение в фоновом режиме, или завершить . При вводе пользователем на своем компьютерном терминале выполняющемуся в данный момент приоритетному процессу отправляется сигнал «остановки терминала» ( SIGTSTP ), который обычно приводит к приостановке выполнения процесса. Позже пользователь может продолжить выполнение процесса, используя команду «передний план» ( fg
) или команду « фон » ( bg
).
Отчет «Вопросы безопасности Unicode» [12] рекомендует этот символ в качестве безопасной замены неотображаемых символов во время преобразования набора символов.
Во многих графических интерфейсах и приложениях Control+ Z ( ⌘ Command+ Z в macOS ) можно использовать для отмены последнего действия. Во многих приложениях более ранние действия, чем последнее, также можно отменить, нажав Control+ Z несколько раз. Control+ Z была одной из немногих последовательностей клавиш , выбранных разработчиками программы Xerox PARC для управления редактированием текста .
Представительство
[ редактировать ]в ASCII и Unicode Представление «замены» :
- Восьмеричный код: 32
- Десятичный код: 26
- Шестнадцатеричный код: 1A, U+001A.
- Мнемонический символ: СУБ
- Двоичное значение: 11010
См. также
[ редактировать ]- Коды управления C0 и C1 ( ISO 646 )
- U+FFFD (символ замены Юникода �)
- Ключ доступа
- Control-C
- Control-G
- Control-V
- Control-X
- Контроль-\
- Сочетание клавиш
- Список подписей файлов
- .notdef — символ (иногда называемый жаргонным термином тофу ), используемый для обозначения отсутствующего символа.
- Noto Fonts — проект Google по устранению пропущенных символов.
Ссылки
[ редактировать ]- ^ «Сочетания клавиш для Windows» . Поддержка Майкрософт . Майкрософт . Проверено 2 июня 2012 г.
- ^ «Таблица характеристик устройств ввода-вывода — консоль или телетайп». Руководство по системе мультипрограммирования PDP-6 (PDF) . Мейнард, Массачусетс, США: Корпорация цифрового оборудования (DEC). 1965. с. 43. DEC-6-0-EX-SYS-UM-IP-PRE00. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июля 2014 г. (1+84+10 страниц)
- ^ «5.1.1.1. Функции, зависящие от устройства — Режимы данных — Полнодуплексное программное обеспечение A (ASCII) и AL (строка ASCII)». Справочное руководство PDP-10: Связь с монитором — Мониторы с разделением времени (PDF) . Том. 3. Корпорация цифрового оборудования (DEC). 1969. С. 5-3 – 5-6 [5-5 (431)]. Архивировано (PDF) из оригинала 15 ноября 2011 г. Проверено 10 июля 2014 г. (207 страниц)
- ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 1.4» . Архивировано из оригинала 14 ноября 2020 г. Проверено 18 ноября 2021 г.
- ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 2.2» . Архивировано из оригинала 05.11.2020 . Проверено 18 ноября 2021 г.
- ^ «2. Соглашения о вызовах операционной системы». Руководство по интерфейсу CP/M 2.0 (PDF) (1-е изд.). Пасифик Гроув, Калифорния, США: Цифровые исследования . 1979. с. 5. Архивировано (PDF) из оригинала 28 февраля 2020 г. Проверено 28 февраля 2020 г.
[...] Конец файла ASCII обозначается символом Control-Z (1AH) или реальным концом файла, возвращаемым операцией чтения CP/M . Однако символы Control-Z, встроенные в файлы машинного кода (например, COM-файлы ), игнорируются, а условие конца файла, возвращаемое CP/M, используется для завершения операций чтения. [...]
(56 страниц) - ^ Хоган, Том (1982). «3. Временные команды CP/M». Руководство пользователя Osborne CP/M - Для всех пользователей CP/M (2-е изд.). Беркли, Калифорния, США: А. Осборн/МакГроу-Хилл . п. 74 . ISBN 0-931988-82-9 . Проверено 28 февраля 2020 г.
[...] CP/M отмечает конец файла ASCII , помещая CONTROL-z в файл символ после последнего символа данных. Если файл содержит число, кратное 128 символам, и в этом случае добавление CONTROL-Z приведет к потере 127 символов, CP/M этого не сделает. Использование символа CONTROL-Z в качестве маркера конца файла возможно, поскольку CONTROL-z редко используется в качестве данных в файлах ASCII. Однако в файле, отличном от ASCII, CONTROL-Z встречается с такой же вероятностью, как и любой другой символ. Поэтому его нельзя использовать в качестве маркера конца файла. CP/M использует другой метод для обозначения конца файла, отличного от ASCII. CP/M предполагает, что он достиг конца файла, когда прочитал последнюю запись (базовую единицу дискового пространства), выделенную для файла. Запись каталога диска для каждого файла содержит список записей диска, выделенных этому файлу. Этот метод использует размер файла, а не его содержимое, чтобы найти конец файла. [...]
[1] [2] - ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 3.1» . Архивировано из оригинала 26 октября 2021 г. Проверено 18 ноября 2021 г.
- ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 4.1» . Архивировано из оригинала 05.11.2020 . Проверено 18 ноября 2021 г.
- ^ Спецификация формата CSV-1203. Архивировано 16 мая 2016 г. в Португальском веб-архиве.
- ^ «Краткий справочник: команды Unix» . ИТ-коннект . Университет Вашингтона . Проверено 2 июня 2012 г.
- ^ Отчет по соображениям безопасности Unicode