1 diff -r f60d817b07ef MoinMoin/user.py 2 --- a/MoinMoin/user.py Fri Nov 01 23:52:20 2013 +0100 3 +++ b/MoinMoin/user.py Sat Nov 02 19:42:07 2013 +0100 4 @@ -38,6 +38,8 @@ 5 from MoinMoin.util import timefuncs, random_string 6 from MoinMoin.wikiutil import url_quote_plus 7 8 +import locale 9 + 10 11 def getUserList(request): 12 """ Get a list of all (numerical) user IDs. 13 @@ -681,7 +683,16 @@ 14 elif isinstance(value, dict): 15 key += '{}' 16 value = encodeDict(value) 17 - line = u"%s=%s" % (key, unicode(value)) 18 + # Handle plain strings 19 + elif isinstance(value, str): 20 + try: 21 + value = unicode(value, "utf-8") 22 + except UnicodeError: 23 + value = unicode(value, locale.getpreferredencoding()) 24 + # Convert other objects 25 + else: 26 + value = unicode(value) 27 + line = u"%s=%s" % (key, value) 28 line = line.replace('\n', ' ').replace('\r', ' ') # no lineseps 29 data.write(line + '\n') 30 data.close()