Python не изменил кодировку:
При печати Python только что разрешил печатные символы в вашей строке: chr(0x72)
- это «r», chr(0xfe)
- не для печати, так что вы получаете «?", chr(0x20)
равно chr(32)
, что является пробелом" ", и нулевые байты не печатаются вообще.
repr()
разрешает" r ", оставляет chr(0xfe)
и печатает chr(0)
в полном шестнадцатеричном формате для chr(0x00)
.
Так что, если вы хотите одну и ту же строку в вашем редакторе и для repr()
, вы должны ввести свою строку в вашем редакторе в той же записи, что и 1016 *, то есть вы пишете
test='r\xfe TEST_STRING\x00\x00\x00'
и repr(test)
должны печатать одну и ту же строку: