为什么Python3使用print()打印“ \ xc2”字符,而Python2为什么不打印?

时间:2019-04-05 07:20:27

标签: python python-3.x

我不明白为什么python3使用\xc2在输出中放置print()字符,而python却不这样做。

我想这与\x??之后的特殊十六进制数字A有关,因为如果我将它们替换为B,那么python3在输出中不要放置\xc2字符。

如何防止python3使用带有特殊十六进制数字的\xc2在输出中放置print()字符?

Python3:

$ python3 -c 'print(64*"A"+"\x9d\x06\x40\x00\x00\x00\x00\x00")' | hexdump -Cv
00000000  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000010  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000020  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000030  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000040  c2 9d 06 40 00 00 00 00  00 0a                    |...@......|
0000004a

Python2:

$ python -c 'print(64*"A"+"\x9d\x06\x40\x00\x00\x00\x00\x00")' | hexdump -Cv
00000000  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000010  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000020  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000030  41 41 41 41 41 41 41 41  41 41 41 41 41 41 41 41  |AAAAAAAAAAAAAAAA|
00000040  9d 06 40 00 00 00 00 00  0a                       |..@......|
00000049

0 个答案:

没有答案