Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. import codecs
  2.  
  3. def decode(some_bytes):
  4. s = "".join("\\x{:02x}".format(i) for i in some_bytes)
  5. return (s, len(some_bytes))
  6.  
  7. def encode(some_string):
  8. if len(some_string) %4 != 0:
  9. raise Exception("Expected only four-character escape sequences")
  10. chars = []
  11. for i in range(0, len(some_string), 4):
  12. symbol = some_string[i:i+4]
  13. if symbol[:2] != "\\x":
  14. raise Exception("Expected only \\x escape sequences")
  15. chars.append(int(symbol[2:], 16))
  16. return (bytes(chars), len(some_string))
  17.  
  18.  
  19. AllEscapes = codecs.CodecInfo(encode, decode, name="all_escapes")
  20.  
  21. codecs.register(lambda name: AllEscapes if name == "all_escapes" else None)
  22.  
  23. x = b"Hello, World!"
  24. print(x.decode("all_escapes"))
  25. #result: \x48\x65\x6c\x6c\x6f\x2c\x20\x57\x6f\x72\x6c\x64\x21
  26.  
  27. print(x.decode("all_escapes").encode("all_escapes"))
  28. #result: b'Hello, World!'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement