From 22d17aaa30a2582914a03ded6df1122f6efefe0a Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Sun, 2 Dec 2012 16:58:49 -0800 Subject: [PATCH] handle non-Unicode exception strings correctly --- beets/util/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/beets/util/__init__.py b/beets/util/__init__.py index d798cb102..7bb64bd24 100644 --- a/beets/util/__init__.py +++ b/beets/util/__init__.py @@ -59,12 +59,14 @@ class HumanReadableException(Exception): def _reasonstr(self): """Get the reason as a string.""" - if isinstance(self.reason, basestring): + if isinstance(self.reason, unicode): return self.reason + elif isinstance(self.reason, basestring): # Byte string. + return self.reason.decode('utf8', 'ignore') elif hasattr(self.reason, 'strerror'): # i.e., EnvironmentError return self.reason.strerror else: - return u'"{0}"'.format(self.reason) + return u'"{0}"'.format(unicode(self.reason)) def get_message(self): """Create the human-readable description of the error, sans