Trong Python 3, làm cách nào để nội suy chuỗi byte thành chuỗi thông thường và nhận được hành vi tương tự như Python 2 (ví dụ: chỉ lấy mã thoát mà không có tiền tố b
hoặc dấu gạch chéo ngược kép)?Python 3: Làm thế nào để có được một chuỗi ký tự bằng chữ của một chuỗi byte?
ví dụ .:
Python 2.7:
>>> x = u'\u041c\u0438\u0440'.encode('utf-8')
>>> str(x)
'\xd0\x9c\xd0\xb8\xd1\x80'
>>> 'x = %s' % x
'x = \xd0\x9c\xd0\xb8\xd1\x80'
Python 3.3:
>>> x = u'\u041c\u0438\u0440'.encode('utf-8')
>>> str(x)
"b'\\xd0\\x9c\\xd0\\xb8\\xd1\\x80'"
>>> 'x = %s' % x
"x = b'\\xd0\\x9c\\xd0\\xb8\\xd1\\x80'"
Lưu ý cách với Python 3, tôi nhận được tiền tố b
ở đầu ra của tôi và dấu gạch đôi. Kết quả mà tôi muốn nhận được là kết quả mà tôi nhận được bằng Python 2.
Trong ví dụ Python 3 của bạn, bạn đang suy thành một chuỗi Unicode, không phải là một chuỗi byte như bạn đang làm trong Python 2. –