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
Mercurial关键字扩展utf-8_Utf 8_Mercurial - Fatal编程技术网

Mercurial关键字扩展utf-8

Mercurial关键字扩展utf-8,utf-8,mercurial,Utf 8,Mercurial,我使用mercurial在Win7系统上对perl脚本进行版本控制。脚本是utf-8文件。我激活了关键字扩展,以查看提交消息。。。在文件本身中。这很好,期待一件小事。如果在我的提交消息中有类似于的umlauts…,我会看到如下内容: “xFC”(=ü)或“xE4”(=ä)作为替换关键字 我唯一发现的就是这个,我把它放在我的mercurial配置中 [web] encoding = utf-8 但这没用。如何强制mercurial使用utf-8编码或任何其他我想要的编码替换关键字 我现在看不出有

我使用mercurial在Win7系统上对perl脚本进行版本控制。脚本是
utf-8
文件。我激活了关键字扩展,以查看提交消息。。。在文件本身中。这很好,期待一件小事。如果在我的提交消息中有类似于
的umlauts…
,我会看到如下内容:

“xFC”(=ü)或“xE4”(=ä)作为替换关键字

我唯一发现的就是这个,我把它放在我的mercurial配置中

[web]
encoding = utf-8
但这没用。如何强制mercurial使用utf-8编码或任何其他我想要的编码替换关键字

我现在看不出有什么方法可以达到正确的结果,因为

  • 在关键字定义中,我们只能使用模板+过滤器和纯文本,不能使用HG命令和OS命令
  • 在UFT8编码文件中插入非UTF8字符串会导致文件损坏(在我的测试中,样式可能不正确)-文件转换为ANSI,UTF8部分将无法读取

  • 我的测试用例
    • 1251(俄语窗口)代码页-完整8位
    • repo中的UTF8(带BOM)文件,其中包含一些俄文字符串
    • 在提交消息中使用俄语文本提交(以混合UTF8文件和1251日志消息)
    • 您的完整关键字映射(而我只能使用
      上一个日志
    结果,我得到了(你不能读俄语块,但可以比较前后的字符串)

    来源

    Country=RU
    Name=Scartel-Yota
    Site=http://www.yota.ru
    Image=Scartel-Yota.bmp
    
    City=Москва
    
    扩展关键字(文件变成了ANSI编码的文件)

    С结论

    为了获得平滑的结果,您必须在插入UTF8目标之前将日志消息重新编码到UTF8中,如

    chcp 65001&&hg log-r tip-T“{desc|nonempty}”


    但是我不能(不知道,如何)在关键字映射中使用任何HG命令(为了可用性和可读性,chcp+log可以是shell别名,但无论如何别名不能成为关键字定义AFAICS的一部分)

    Show:1)你的关键字定义2)你的windows代码页(控制台)。提示:在粘贴
    [web]
    之前,必须将Windows-*字符串重新编码到UTF8中,该部分与您的任务根本不相关,它只是嵌入式服务器(hg serve)1的代码页[keyword]**.pl=**.pm=**.bat=[keywordmaps]Author={Author | person}EMail={Author | EMail}Date={Date Datelast|log={desc|nonempty}Version={latesttag | nonempty}RevLocal={rev}RevID={node | short}Source={root}/{file}Datei={file}2)cp-1252 3)我应该重新编码什么,我的提交消息?我怎样才能做到这一点呢?我在工作台GUI中使用OrtoisehG。通常我在这里登记。
    // $last_log: Исправлено кодирование на UTF8 $
    
    Country=RU
    Name=Scartel-Yota
    Site=http://www.yota.ru
    Image=Scartel-Yota.bmp
    
    City=РњРѕСЃРєРІР°