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