Python ascii() built-in function
From the Python 3 documentation
As repr(), return a string containing a printable representation of an object, but escape the non-ASCII characters in the string returned by repr() using \x, \u, or \U escapes.
Introduction
The ascii() function in Python is a built-in function that returns a string containing a printable representation of an object, similar to repr(). However, ascii() escapes any non-ASCII characters with \x, \u, or \U escape sequences. This is useful for ensuring that a string is safe to be used in an ASCII-only environment.
Examples
# For an ASCII character, it's the same as repr()
>>> ascii('A')
# "'A'"
# For a non-ASCII character, it gets escaped
>>> ascii('ë')
# "'\\xeb'"
# For comparison, repr() would not escape it
>>> repr('ë')
# "'ë'"
# It works on iterables too
>>> ascii(['A', 'ë'])
# "['A', '\\xeb']"