String <-> bytes encoding/decoding¶
-
sage.cpython.string.bytes_to_str(b, encoding=None, errors=None)¶ Convert
bytestostr.On Python 2 this is a no-op since
bytes is str. On Python 3 this decodes the givenbytesto a Python 3 unicodestrusing the specified encoding.EXAMPLES:
sage: import six sage: from sage.cpython.string import bytes_to_str sage: s = bytes_to_str(b'\xcf\x80') sage: if six.PY2: ....: s == b'\xcf\x80' ....: else: ....: s == u'π' True sage: bytes_to_str([]) Traceback (most recent call last): ... TypeError: expected bytes, list found
-
sage.cpython.string.str_to_bytes(s, encoding=None, errors=None)¶ Convert
strorunicodetobytes.On Python 3 this encodes the given
strto a Python 3bytesusing the specified encoding.On Python 2 this is a no-op on
strinput sincestr is bytes. However, this function also accepts Python 2unicodeobjects and treats them the same as Python 3 unicodestrobjects.EXAMPLES:
sage: import six sage: from sage.cpython.string import str_to_bytes sage: if six.PY2: ....: bs = [str_to_bytes('\xcf\x80'), str_to_bytes(u'π')] ....: else: ....: bs = [str_to_bytes(u'π')] sage: all(b == b'\xcf\x80' for b in bs) True sage: str_to_bytes([]) Traceback (most recent call last): ... TypeError: expected str... list found