I want to decode b"\x80" in python (I want to receive "\x80").
When I tried b"\x80".decode(), it gives me UnicodeDecodeError.
But when I tried just "\x80", it gives me what I expected.
Why it's happened and how to get what I expect?
CodePudding user response:
You can use the latin-1 encoding to get the result you want.
>>> b"\x80".decode('latin-1')
'\x80'
This is a 8-bit encoding that covers \x00 to \xff. The first 256 code points of Unicode are based on latin-1 (aka ISO/IEC 8859-1)
You can also use encoding unicode_escape, which even works with higher unicode escape codes such as b"\u0080" and b"\U00000080".
>>> b"\u0080".decode('unicode_escape')
'\x80'
