首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以允许一个存储库使用utf-8编码,而另一个存储库使用gbk编码?

是否可以允许一个存储库使用utf-8编码,而另一个存储库使用gbk编码?
EN

Stack Overflow用户
提问于 2013-11-26 15:09:32
回答 1查看 423关注 0票数 0

环境:

SUSE Linux enterprise server 11 sp1

git版本1.6.0.2

用于访问控制的gitoite

在apache上运行git web

我有两个存储库。在repo中,它的编码是gbk,而repo是utf-8。

那么,如果repo a有中文代码,那么在git web上查看时,中文字符将是乱码。

但repo b中的中文代码将正确显示。

所以我想问一下,是否有可能让git web识别不同存储库的不同编码。并且可以显示中文代码

EN

回答 1

Stack Overflow用户

发布于 2013-11-26 18:14:56

(我没有这个主题的权威知识;我只总结一下我对Git编码的了解。)

有两种对象,其内容被解释为某种编码:

  • 提交(提交消息是主要部分)。
  • BLOBs文件的内容。

关于提交,Git有三个configuration旋钮来控制编码:

  • i18n.commitEncoding:当被设置(设置为编码的名称)时,告诉Git将一个特殊的头放到一个提交对象中,该对象指定提交消息的编码。

相反,读取这样一个提交对象的工具可能会解析出这个头,并使用提交编码的知识将提交内容正确地重新编码到它们的本地representation.

  • i18n.logOutputEncoding中,可能会被用来改变Git关于用户终端编码的想法,当在那里写入运行git log command.

  • gui.encoding:的结果时,当设置时,使标准的Git GUI工具(gitkgit gui)假设存储库中的所有文件都以指定的编码进行编码。这允许这些工具将文件内容正确地重新编码为其本机编码。

可以使用.gitattributes file.中的encoding参数以文件为单位对存储库中的文件进行本机编码

那么,您可以尝试执行哪些操作来配置gitweb…这完全取决于此工具是否支持上述配置旋钮。

首先,我会尝试在您的存储库(注意:在由gitweb访问的存储库)中正确设置gui.encoding

如果您在提交消息中使用GBK,则必须在这些提交对象中有一个适当的编码头,否则它将无法工作,我估计。如果您没有,可以考虑对您的存储库进行一次history rewriting测试。这需要做一些研究。

你也可以考虑调整你的web服务器配置,强制它运行的CGI工具,包括gitweb,在他们的环境中看到一个启用了GBK的语言环境--这可能会使gitweb在显示文件时只是“传递”你的文件内容。我不确定它会不会起作用,但至少你可以试一下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20210615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档