у кого-нибудь есть идея, почему этот код Python 3.2
try:
raise Exception('X')
except Exception as e:
print("Error {0}".format(str(e)))
работает без проблем (кроме кодировки Unicode в Windows Shell: /),
но это
try:
raise Exception('X')
except Exception as e:
print("Error {0}".format(str(e, encoding = 'utf-8')))
throws TypeError: приведение к str: нужны байты, байтовый массив или буфероподобный объект, исключение найдено ?
Как преобразовать ошибку в строку с пользовательской кодировкой?
Редактировать
Не работает, если в сообщении есть \ u2019:
try:
raise Exception(msg)
except Exception as e:
b = bytes(str(e), encoding = 'utf-8')
print("Error {0}".format(str(b, encoding = 'utf-8')))
Но почему str () не может преобразовать внутреннее исключение в байты?