# HG changeset patch # User Matt Mackall # Date 1391645347 21600 # Node ID cc00cd6c51c2b1ecfa295efc9f06309188506db8 # Parent 2ac278aab2b48f9cba1e282ff722b5bef73507af# Parent 6863d42eb59a39ea483eec0728b3a5d6836d20b6 merge with stable diff -r 2ac278aab2b4 -r cc00cd6c51c2 mercurial/hgweb/server.py --- a/mercurial/hgweb/server.py Fri Jan 24 16:57:44 2014 -0800 +++ b/mercurial/hgweb/server.py Wed Feb 05 18:09:07 2014 -0600 @@ -322,7 +322,20 @@ cls = MercurialHTTPServer # ugly hack due to python issue5853 (for threaded use) - import mimetypes; mimetypes.init() + try: + import mimetypes + mimetypes.init() + except UnicodeDecodeError: + # Python 2.x's mimetypes module attempts to decode strings + # from Windows' ANSI APIs as ascii (fail), then re-encode them + # as ascii (clown fail), because the default Python Unicode + # codec is hardcoded as ascii. + + reload(sys) # resurrect sys.setdefaultencoding() + oldenc = sys.getdefaultencoding() + sys.setdefaultencoding("latin1") # or any full 8-bit encoding + mimetypes.init() + sys.setdefaultencoding(oldenc) address = ui.config('web', 'address', '') port = util.getport(ui.config('web', 'port', 8000))