1

前几天我正在使用一个 ascii 代码表,并注意到存在一些“不可打印”的字符。这些字符包括“Null”、“Start of Header”和其他类似字符。我自己测试了这些字符,尝试将“Null”打印到控制台,如下所示:

print ("Hello" + chr(0))

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

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

谢谢!

4

1 回答 1

1

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

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

我个人最喜欢的是 ASCII 007 字符的定时字符串。这听起来很响亮(这些天通常是一个小的“哔”声)。

于 2016-12-28T18:22:10.547 回答