当我编写并运行语句时:
print "\x00\x00\x00"
在Python中,它输出三个空格,后跟一个换行符。但在C语言中,当我编写并运行语句时:
char hex[] = "\x00\x00\x00";
printf("%s\n", hex);
它像我想的那样解释NULL字节:它没有做任何事情。那么为什么在Python中将NULL字节视为空格?...
答案 0 :(得分:9)
那么为什么在Python中将NULL字节视为空格?
不是。您的终端/控制台将它们视为空格。 C恰好在第一个NUL停止,而Python输出它们。尝试将三个NUL写入stdout。