stringtranslate.com

Заменить символ

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

В наборе символов ASCII этот символ кодируется числом 26 ( 1A hex ). Стандартные клавиатуры передают этот код при одновременном нажатии клавиш Ctrlи ( Ctrl+Z , часто документируется как ^Z ) . [1] Юникод наследует этот символ от ASCII, но рекомендует использовать вместо него символ замены (�, U+FFFD) для представления недекодируемых входных данных, если выходная кодировка совместима с ним.Z

Использование

Конец файла

Исторически сложилось так, что в мониторах PDP-6 , [2] RT-11 , VMS и TOPS-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 в качестве последнего символа в файле. Однако ввод + не встраивает символ EOF в файл ни в DOS , ни в Windows , а API этих систем не используют этот символ для обозначения фактического конца файла.ControlZ

Некоторые языки программирования (например, Visual Basic ) не будут читать дальше «мягкого» EOF при использовании встроенных примитивов чтения текстовых файлов (INPUT, LINE INPUT и т. д.), [ необходима ссылка ] и необходимо использовать альтернативные методы, например, открытие файл в двоичном режиме или с помощью объекта файловой системы для выхода за его пределы.

Символ 26 использовался для обозначения «конца файла», хотя ASCII называет этот символ «заменой» и имеет другие символы для обозначения «конца файла». Номер 28, который называется « Разделитель файлов », также использовался для аналогичных целей.

Другое использование

В Unix -подобных операционных системах этот символ обычно используется в оболочках , чтобы пользователь мог приостановить текущий интерактивный процесс. [11] Затем приостановленный процесс можно возобновить в приоритетном (интерактивном) режиме, либо возобновить выполнение в фоновом режиме, либо завершить . При вводе пользователем на своем компьютерном терминале выполняющемуся в данный момент приоритетному процессу отправляется сигнал «остановки терминала» ( SIGTSTP ), который обычно приводит к приостановке выполнения процесса. Позже пользователь может продолжить выполнение процесса, используя команду «передний план» ( fg) или команду « фон » ( bg).

В отчете «Соображения безопасности Unicode» [12] этот символ рекомендуется в качестве безопасной замены неотображаемых символов во время преобразования набора символов.

Во многих графических интерфейсах и приложениях + ( + в macOS ) можно использовать для отмены последнего действия. Во многих приложениях более ранние действия, чем последнее, также можно отменить, нажав + несколько раз. + была одной из немногих последовательностей клавиатуры , выбранных разработчиками программы Xerox PARC для управления редактированием текста .ControlZ⌘ CommandZControlZControlZ

Представление

Представление «замены» в ASCII и Unicode :

Смотрите также

Рекомендации

  1. ^ «Сочетания клавиш для Windows» . Поддержка Майкрософт . Майкрософт . Проверено 2 июня 2012 г.
  2. ^ «Таблица характеристик устройств ввода-вывода - консоль или телетайпы» . Руководство по системе мультипрограммирования PDP-6 (PDF) . Мейнард, Массачусетс, США: Digital Equipment Corporation (DEC). 1965. с. 43. DEC-6-0-EX-SYS-UM-IP-PRE00. Архивировано (PDF) из оригинала 14 июля 2014 г. Проверено 10 июля 2014 г.(1+84+10 страниц)
  3. ^ «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 страниц)
  4. ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 1.4». Архивировано из оригинала 14 ноября 2020 г. Проверено 18 ноября 2021 г.
  5. ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 2.2». Архивировано из оригинала 05.11.2020 . Проверено 18 ноября 2021 г.
  6. ^ «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 страниц)
  7. ^ Хоган, Том (1982). «3. Временные команды CP/M». Руководство пользователя Osborne CP/M - Для всех пользователей CP/M (2-е изд.). Беркли, Калифорния, США: А. Осборн/МакГроу-Хилл . п. 74. ИСБН 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]
  8. ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 3.1». Архивировано из оригинала 26 октября 2021 г. Проверено 18 ноября 2021 г.
  9. ^ Эллиотт, Джон К. (1998). «Форматы дисков CP/M 4.1». Архивировано из оригинала 05.11.2020 . Проверено 18 ноября 2021 г.
  10. ^ Спецификация формата CSV-1203. Архивировано 16 мая 2016 г. в Португальском веб-архиве.
  11. ^ «Краткий справочник: команды Unix». ИТ-коннект . Университет Вашингтона . Проверено 2 июня 2012 г.
  12. ^ Отчет по соображениям безопасности Unicode

дальнейшее чтение