Por que a saída de impressão em python2 e python3 é diferente com a mesma string?
Em python2:
$ python2 -c 'print "\x08\x04\x87\x18"' | hexdump -C
00000000 08 04 87 18 0a |.....|
00000005
Em python3:
$ python3 -c 'print("\x08\x04\x87\x18")' | hexdump -C
00000000 08 04 c2 87 18 0a |......|
00000006
Por que tem o byte"\xc2"
aqui?
Editar:
Eu acho que quando a string tem um caractere não-ascii, python3 acrescentará o byte"\xc2"
para a corda. (como @Ashraful Islam disse)
Então, como posso evitar isso em python3?