diff -r f18cc848b48e -r d229be12e256 mercurial/i18n.py --- a/mercurial/i18n.py Sat Oct 01 09:55:32 2016 +0800 +++ b/mercurial/i18n.py Fri Oct 07 12:13:28 2016 +0200 @@ -12,7 +12,10 @@ import os import sys -from . import encoding +from . import ( + encoding, + pycompat, +) # modelled after templater.templatepath: if getattr(sys, 'frozen', None) is not None: @@ -85,7 +88,8 @@ # means u.encode(sys.getdefaultencoding()).decode(enc). Since # the Python encoding defaults to 'ascii', this fails if the # translated string use non-ASCII characters. - _msgcache[message] = u.encode(encoding.encoding, "replace") + encodingstr = pycompat.sysstr(encoding.encoding) + _msgcache[message] = u.encode(encodingstr, "replace") except LookupError: # An unknown encoding results in a LookupError. _msgcache[message] = message