Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unicode Mercurial提交消息和日志,支持什么编码,Hg关心吗?_Unicode_Mercurial - Fatal编程技术网

Unicode Mercurial提交消息和日志,支持什么编码,Hg关心吗?

Unicode Mercurial提交消息和日志,支持什么编码,Hg关心吗?,unicode,mercurial,Unicode,Mercurial,我尝试通过Mercurial的包装器库进行简单的提交,将Unicode:æåÆØ的简单文本作为提交消息。这将写入文本文件,并通过适当的参数提供给Mercurial: hg commit --logfile FILE 如果我随后用陆龟图查看存储库,字符将正确复制。在控制台上,它们被损坏: [C:\Temp] :hg log changeset: 0:6a0911410128 tag: tip user: Lasse V. Karlsen date:

我尝试通过Mercurial的包装器库进行简单的提交,将
Unicode:æåÆØ
的简单文本作为提交消息。这将写入文本文件,并通过适当的参数提供给Mercurial:

hg commit --logfile FILE
如果我随后用陆龟图查看存储库,字符将正确复制。在控制台上,它们被损坏:

[C:\Temp] :hg log changeset: 0:6a0911410128 tag: tip user: Lasse V. Karlsen date: Wed Dec 01 21:48:54 2010 +0100 summary: Unicode:├ª├╕├Ñ├å├ÿ├à [C:\Temp]:hg日志 变更集:0:6a0911410128 标签:提示 用户:Lasse V.Karlsen 日期:星期三12月1日21:48:54 2010+0100 摘要:Unicode:├ª├╕├Ñ├å├ÿ├à 如果我将
hg log
的输出重定向到一个文件,并打开它,
æåÆØ
被正确地复制

所以,我的问题是:

  • 我可以要求
    hg
    直接将日志写入文件,还是必须重定向标准输出
  • 这是否会导致控制台的python编码出现问题,即某些字符会导致
    hg
    崩溃,而不仅仅是破坏输出
  • 我应该遵守的提交消息是否有已知的受支持编码
还是就这么简单:

  • Mercurial不在乎,它接受我给它的文件的内容,不管是什么内容,并将其存储为提交消息。在生成日志时,它只会将日志转储回控制台,而不会受到Python控制台输出库在这方面的任何限制

    • 以下内容可能无法解决问题,但有助于调试

      退房:

      如果我将hg log的输出重定向到一个文件,并将其打开,则正确地再现了æåÆØØ

      因此,至少mercurial正确地存储了提交信息。只有输出被弄糟了

      有些工作是沿着这些路线进行的,但与此无关

      [编辑:忽略了您在windows上的事实]

      请参阅关于如何处理字符集兼容性问题的最后一段:

      它说:

      • 将控制台代码页设置为与系统代码页匹配
      • 使用环境变量重写Mercurial的编码
        • 设置HGENCODING将覆盖检测到的系统字符集
      • 使用命令行选项覆盖Mercurial的编码
        • 使用global--encoding选项将允许您在每个命令上设置首选编码
      • 使用基于GUI的工具与Mercurial交互
        • 这也消除了问题,完全消除了讨厌的控制台
      • 使用Linux/UNIX和UTF-8
        • 这让比尔·盖茨哭了

      如果对
      hg
      命令使用git bash,则可以将字符集设置为
      ISO-8859-1
      ,以修复hg日志中令人讨厌的字符

      为此,单击git bash左上角的图标,转到git bash选项 *选择选项 *选择文本 *在底部,将字符集设置为
      ISO-8859-1


      我知道这样做很痛苦,但效果很好。

      不适用:他在使用Windows(
      C:\Temp
      )@你用的是什么控制台?(您的提示符不是默认的命令提示符。)接受命令,但这有关系吗?我是从.net派生程序的,我假设它使用cmd(这很糟糕)。我明天会查的,现在就寝前在我的iPad上阅读。还要注意的是,使用提示符命令可以更改命令提示符文本,如果这是你所学的。我没有得到“比尔·盖茨”的参考。UTF-8在Windows上和在其他地方一样是事实上的标准。记事本保存UTF-8。我的编辑器保存UTF-8。Mercurial随后故意介入并把事情搞砸,以“避免让BG哭”,而让我哭。@romkyns“使用Linux/UNIX和UTF-8”的解决方案会让比尔·盖茨哭,而不是UTF-8本身。