From ce2c1da7627a4e3b0cc539bb7ecbe25ecfa3f04e Mon Sep 17 00:00:00 2001 From: Mike Bonnet Date: Mon, 10 Sep 2007 18:12:39 -0400 Subject: [PATCH] fix fixEncoding() to handle being passed a unicode object --- koji/__init__.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/koji/__init__.py b/koji/__init__.py index 383785a4..d808126e 100644 --- a/koji/__init__.py +++ b/koji/__init__.py @@ -1574,11 +1574,19 @@ def fixEncoding(value, fallback='iso8859-15'): if not value: return value - try: - return value.decode('utf8').encode('utf8') - except UnicodeDecodeError, err: - return value.decode(fallback).encode('utf8') - + if isinstance(value, unicode): + # value is already unicode, so just convert it + # to a utf8-encoded str + return value.encode('utf8') + else: + # value is a str, but may be encoded in utf8 or some + # other non-ascii charset. Try to verify it's utf8, and if not, + # decode it using the fallback encoding. + try: + return value.decode('utf8').encode('utf8') + except UnicodeDecodeError, err: + return value.decode(fallback).encode('utf8') + def add_file_logger(logger, fn): if not os.path.exists(fn): try: