Символы, которые не видны при печати

Я использовал таблицу кодов ascii на днях и заметил, что существуют некоторые "непечатные" символы. Эти символы включают "Ноль", "Начало заголовка" и другие подобные им. Я сам проверил эти символы, пытаясь вывести "Null" на консоль следующим образом:

print ("Hello" + chr(0))

Было выведено слово Hello и небольшая белая коробка с буквами "NUL". Я ожидал, что для символа Null не будет никакого вывода - я думал, что вывод будет просто "Привет".

Является ли этот вывод уникальным для Python? Если вывод записывается в файл, не записывается символ? Кроме того, если "Hello + chr(0)" записан где-то и затем прочитан другой программой, программа распознает "Нуль" или будет прочитана так, как будто ничего нет? По сути, что-то скрыто, что-то исчезает и что видно?

Спасибо!

1 ответ

Решение

Это функция настроек дисплея вашей консоли. Python просто отправляет данные коды ASCII на вашу консоль, которую он видит просто как еще одно устройство вывода, почти так же, как запись в файл. Как отображать каждый символ, зависит от менеджера ввода консоли. Например, обратите внимание, как некоторые приложения будут переводить:-) в односимвольный значок смайлика? Это делается в приложении отображения на другом конце.

Вы можете продемонстрировать это, написав эквивалентную программу вывода на другом языке - посмотрите, как она обрабатывает символ NUL таким же образом.

Мой личный фаворит - синхронизированная строка символов ASCII 007. Это звучит звонкий звонок (как правило, небольшой "гудок" в наши дни).

Другие вопросы по тегам