encoding: alias cp65001 to utf-8 on Windows stable
authorYuya Nishihara <yuya@tcha.org>
Sun, 01 Jul 2018 23:36:53 +0900
branchstable
changeset 38615 443029011990
parent 38533 3a0f322af192
child 38739 7acec9408e1c
encoding: alias cp65001 to utf-8 on Windows As far as I can tell, cp65001 is the Windows name for UTF-8. I don't know how different it is from the UTF-8, but Python 3 appears to have introduced new codec for cp65001, so the alias is enabled only for Python 2. https://bugs.python.org/issue13216 This patch is untested, but hopefully fixes the following issue. https://bitbucket.org/tortoisehg/thg/issues/5127/
mercurial/encoding.py
--- a/mercurial/encoding.py	Wed Jul 04 14:19:13 2018 +0200
+++ b/mercurial/encoding.py	Sun Jul 01 23:36:53 2018 +0900
@@ -72,6 +72,11 @@
     '646': lambda: 'ascii',
     'ANSI_X3.4-1968': lambda: 'ascii',
 }
+# cp65001 is a Windows variant of utf-8, which isn't supported on Python 2.
+# No idea if it should be rewritten to the canonical name 'utf-8' on Python 3.
+# https://bugs.python.org/issue13216
+if pycompat.iswindows and not pycompat.ispy3:
+    _encodingfixers['cp65001'] = lambda: 'utf-8'
 
 try:
     encoding = environ.get("HGENCODING")