打印时不可见的字符

Characters that are not visible when printed

前几天我在使用 ascii 代码 table 并注意到存在一些 "unprintable" 字符。这些字符包括 "Null"、"Start of Header" 和其他类似字符。 我通过尝试将 "Null" 打印到控制台来自己测试这些字符:

print ("Hello" + chr(0))

输出了单词 Hello 以及一个带有字母 "NUL" 的小白框。我原以为 Null 字符根本没有输出 - 我认为输出只是 "Hello".

这个输出是 Python 独有的吗?如果输出写入文件是不是没有字符写入?另外,如果 "Hello + chr(0)" 写在某处然后被另一个程序读入,程序会识别 "Null" 还是会像什么都没有一样被读取?基本上,什么是隐藏的,什么是消失的,什么是可见的?

谢谢!

这是控制台显示设置的一项功能。 Python 只是将给定的 ASCII 代码发送到您的控制台,它被视为只是另一个输出设备,与写入文件几乎相同。如何显示每个字符取决于控制台的输入管理器。例如,请注意某些应用程序如何将 :-) 转换为单字符笑脸图标?这是在另一端的显示应用程序中完成的。

您可以通过用另一种语言编写等效的输出程序来证明这一点——看看它如何以相同的方式处理 NUL 字符。

我个人最喜欢的是 ASCII 007 字符的定时字符串。这听起来像是终端铃声(现在通常是一个小 "beep")。