encodeutils¶
- oslo_utils.encodeutils.exception_to_unicode(exc)¶
Get the message of an exception as a Unicode string.
On Python 3, the exception message is always a Unicode string. On Python 2, the exception message is a bytes string most of the time.
If the exception message is a bytes strings, try to decode it from UTF-8 (superset of ASCII), from the locale encoding, or fallback to decoding it from ISO-8859-1 (which never fails).
New in version 1.6.
- oslo_utils.encodeutils.safe_decode(text, incoming=None, errors='strict')¶
- Decodes incoming text/bytes string using incoming if they’re not
already unicode.
- Parameters
incoming – Text’s current encoding
errors – Errors handling policy. See here for valid values http://docs.python.org/2/library/codecs.html
- Returns
text or a unicode incoming encoded representation of it.
- Raises
TypeError – If text is not an instance of str
- oslo_utils.encodeutils.safe_encode(text, incoming=None, encoding='utf-8', errors='strict')¶
Encodes incoming text/bytes string using encoding.
If incoming is not specified, text is expected to be encoded with current python’s default encoding. (sys.getdefaultencoding)
- Parameters
incoming – Text’s current encoding
encoding – Expected encoding for text (Default UTF-8)
errors – Errors handling policy. See here for valid values http://docs.python.org/2/library/codecs.html
- Returns
text or a bytestring encoding encoded representation of it.
- Raises
TypeError – If text is not an instance of str
See also to_utf8() function which is simpler and don’t depend on the locale encoding.
- oslo_utils.encodeutils.to_utf8(text)¶
Encode Unicode to UTF-8, return bytes unchanged.
Raise TypeError if text is not a bytes string or a Unicode string.
New in version 3.5.