我不明白为什么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