Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import codecs
- def decode(some_bytes):
- s = "".join("\\x{:02x}".format(i) for i in some_bytes)
- return (s, len(some_bytes))
- def encode(some_string):
- if len(some_string) %4 != 0:
- raise Exception("Expected only four-character escape sequences")
- chars = []
- for i in range(0, len(some_string), 4):
- symbol = some_string[i:i+4]
- if symbol[:2] != "\\x":
- raise Exception("Expected only \\x escape sequences")
- chars.append(int(symbol[2:], 16))
- return (bytes(chars), len(some_string))
- AllEscapes = codecs.CodecInfo(encode, decode, name="all_escapes")
- codecs.register(lambda name: AllEscapes if name == "all_escapes" else None)
- x = b"Hello, World!"
- print(x.decode("all_escapes"))
- #result: \x48\x65\x6c\x6c\x6f\x2c\x20\x57\x6f\x72\x6c\x64\x21
- print(x.decode("all_escapes").encode("all_escapes"))
- #result: b'Hello, World!'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement