1
# Copyright (C) 2007-2008 www.stani.be
3
# This program is free software: you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation, either version 3 of the License, or
6
# (at your option) any later version.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with this program. If not, see http://www.gnu.org/licenses/
17
ENCODING = locale.getdefaultlocale()[1]
19
def ensure_unicode(x,encoding=ENCODING,errors='replace'):
20
if type(x) is unicode: return x
23
except UnicodeDecodeError:
24
return unicode(x,encoding,errors)
26
def exception_to_unicode(x,encoding=ENCODING,errors='replace'):
28
if hasattr(x,'message'):
29
return ensure_unicode(x.message,encoding,errors)
32
return ensure_unicode(str(x),encoding,errors)