打印时不可见的字符

时间:2016-12-28 18:06:22

标签: python ascii file-writing non-printable

前几天我使用的是ascii代码表,并注意到一些"不可打印的"字符存在。这些字符包括" Null"," Start of Header"以及其他类似的人物。 我通过尝试打印" Null"来测试这些角色。像这样的控制台:

print ("Hello" + chr(0))

输出Hello这个词以及带有字母" NUL"的小白框。我期待Null字符根本没有输出 - 我认为输出只是"你好"。

这个输出对Python来说是独一无二的吗?如果输出写入文件是没有写入字符?此外,如果"Hello + chr(0)"写在某处然后由另一个程序读入,程序是否会识别" Null"或者它会被读作好像什么都没有?基本上,任何隐藏的东西,什么都消失了,什么是可见的?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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