diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/AbstractHgHandler.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/AbstractHgHandler.java index 3ba8c53a57..a24b1ad134 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/AbstractHgHandler.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/AbstractHgHandler.java @@ -95,7 +95,16 @@ public class AbstractHgHandler /** Field description */ public static final String ENV_REVISION_START = "SCM_REVISION_START"; + + /** Field description */ + public static final String ENV_PYTHONIOENCODING = "PYTHONIOENCODING"; + + /** Field description */ + public static final String ENV_HGENCODING = "HGENCODING"; + /** Field description */ + public static final String ENCODING = "UTF-8"; + /** the logger for AbstractHgHandler */ private static final Logger logger = LoggerFactory.getLogger(AbstractHgHandler.class); @@ -431,6 +440,10 @@ public class AbstractHgHandler pb.directory(directory); Map env = pb.environment(); + + // force utf-8 encoding for mercurial and python + env.put(ENV_PYTHONIOENCODING, ENCODING); + env.put(ENV_HGENCODING, ENCODING); if (context.isSystemEnvironment()) { diff --git a/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hglog.py b/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hglog.py index 638dab82f1..c405309b81 100644 --- a/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hglog.py +++ b/scm-plugins/scm-hg-plugin/src/main/resources/sonia/scm/hglog.py @@ -53,7 +53,7 @@ def openRepository(): def writeXml(doc): # print doc.toprettyxml(indent=" ") - print doc.toxml() + doc.writexml(sys.stdout, encoding='UTF-8') def createChildNode(doc, parentNode, name): node = doc.createElement(name)