diff --git a/rhodecode/lib/__init__.py b/rhodecode/lib/__init__.py --- a/rhodecode/lib/__init__.py +++ b/rhodecode/lib/__init__.py @@ -181,7 +181,7 @@ def generate_api_key(username, salt=None return hashlib.sha1(username + salt).hexdigest() -def safe_unicode(str_, from_encoding='utf8'): +def safe_unicode(str_, from_encoding=None): """ safe unicode function. Does few trick to turn str_ into unicode @@ -195,6 +195,11 @@ def safe_unicode(str_, from_encoding='ut if isinstance(str_, unicode): return str_ + if not from_encoding: + import rhodecode + DEFAULT_ENCODING = rhodecode.CONFIG.get('default_encoding','utf8') + from_encoding = DEFAULT_ENCODING + try: return unicode(str_) except UnicodeDecodeError: @@ -215,7 +220,7 @@ def safe_unicode(str_, from_encoding='ut return unicode(str_, from_encoding, 'replace') -def safe_str(unicode_, to_encoding='utf8'): +def safe_str(unicode_, to_encoding=None): """ safe str function. Does few trick to turn unicode_ into string @@ -233,6 +238,11 @@ def safe_str(unicode_, to_encoding='utf8 if isinstance(unicode_, str): return unicode_ + if not to_encoding: + import rhodecode + DEFAULT_ENCODING = rhodecode.CONFIG.get('default_encoding','utf8') + to_encoding = DEFAULT_ENCODING + try: return unicode_.encode(to_encoding) except UnicodeEncodeError: