У кого-нибудь есть идея, почему этот код Python 3.2
try:
raise Exception('X')
except Exception as e:
print("Error {0}".format(str(e)))
работает без проблем (кроме кодировки Unicode в оболочке Windows:/), но это
try:
raise Exception('X')
except Exception as e:
print("Error {0}".format(str(e, encoding = 'utf-8')))
throws TypeError: принуждение к str: нужны байты, bytearray или буферный объект, обнаружено исключение?
Как преобразовать ошибку в строку с пользовательской кодировкой?
Edit
Он также не работает, если в сообщении есть:\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 не может преобразовать исключение изнутри в байты?