我尝试通过我的Mercurial包装器库进行简单的提交,使用Unicode:æøåÆØÅ
的简单文本作为我的提交消息。这将写入文本文件,并使用适当的参数提供给Mercurial:
hg commit --logfile FILE
如果我随后使用TortoiseHg查看存储库,则会正确再现字符。在控制台上,它们被破坏了:
[C:\Temp] :hg log changeset: 0:6a0911410128 tag: tip user: Lasse V. Karlsen date: Wed Dec 01 21:48:54 2010 +0100 summary: Unicode:æøåÆØÅ
如果我将hg log
的输出重定向到某个文件并将其打开,则会正确再现æøåÆØÅ
。
所以,我的问题是:
hg
直接将日志写入文件,还是必须重定向标准输出?hg
崩溃而不是仅仅输出错误?或者只是这么简单:
答案 0 :(得分:8)
以下可能无法解决问题但可以帮助调试。
退房:https://www.mercurial-scm.org/wiki/EncodingStrategy
如果我将hg log的输出重定向到一个文件,并将其打开,则可以正确复制æøåÆØÅ。
所以至少mercurial正确存储提交信息。它只是输出搞砸了。
有些工作沿着这些方向发生但与此无关
[编辑:错过了你在Windows上的事实]
请参阅有关如何处理字符集兼容性问题的最后一段:https://www.mercurial-scm.org/wiki/CharacterEncodingOnWindows
它说:
答案 1 :(得分:0)
如果将git bash用于hg
命令,则可以将字符集设置为ISO-8859-1
,以修复hg日志中令人讨厌的字符。
为此,请通过单击git bash左上方的图标转到git bash选项
*选择选项
*选择文字
*在底部将字符集设置为ISO-8859-1
我知道这样做很痛苦,但是可以。