Jenkins git-plugin编码转换乱码?

时间:2015-04-16 07:41:50

标签: git encoding utf-8 jenkins

  

[问题]当我们查看更改时,提交日志会出现乱码。

报告here。我确认原因就像hayarobi Park评论一样:

  

我在Windows 7上运行Jenkins(韩文版,编码是CP949)   与msysgit-1.9.5-xxx。 git存储库位于远程Linux机器上。   我有一个问题,即最近的更改消息已损坏。

     

经过一些测试和调试git-plugin后,我发现,至少在我的情况下,我发现了   从外部git.exe的标准输出收到的日志消息是   已经腐败了。因此,构建目录存储中的changelog.xml文件   损坏的文字。

     

git-client插件像这样执行外部git.exe   命令," git.exe whatchanged --no-abbrev -M --pretty = raw   df1cca6135b7019dbd583693b59f6b97f408f5c5"和git.exe输出更改日志   标准化。 git-client插件获取该输出。在这一点上,   git-client插件收到了错误转换的消息。

     

原始邮件是UTF-8,但是假设此消息   当前操作系统的编码(我的计算机中的CP949)然后编码错误   转换(CP949到UCS-2)发生。我还不知道哪一个是   做错误的转换; hudson Locallauncher,get.exe或其他。

我的验证流程如下:

  1. 从" [Jenkins项目名称] / builds / [Build Number] /"获取changelog.xml文件。夹。 notepad.exe告诉它的编码是utf8,但所有可能的编码(包括 utf8 / ucs16 / [gbk] 等)查看时都存在乱码。
  2. 然后我将其编码从utf8转换为我的windows本地编码gbk。 Garbles字符仍然按预期存在,因为changelog.xml是从作为gbk处理的utf8转换为像hayarobi Park所述的utf8。
  3. 然后我用utf8编码查看changelog.xml,乱码的字符消失了!
  4. 所以我尝试通过config git log message编码从默认的utf8到gbk解决问题。奇怪的是,詹金斯仍然存在乱码。更改日志页面,虽然changelog.xml文件已经过gbk编码,可以正常查看。

    然后我会因为下一步做什么而输了......

1 个答案:

答案 0 :(得分:1)

在cmd上试试这个

git config --global i18n.commitEncoding cp949  
git config --global i18n.logOutputEncoding cp949  

或者将编码更改为您需要的任何内容。它对我很好!