环境:
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识别不同存储库的不同编码。并且可以显示中文代码
发布于 2013-11-26 18:14:56
(我没有这个主题的权威知识;我只总结一下我对Git编码的了解。)
有两种对象,其内容被解释为某种编码:
关于提交,Git有三个configuration旋钮来控制编码:
i18n.commitEncoding:当被设置(设置为编码的名称)时,告诉Git将一个特殊的头放到一个提交对象中,该对象指定提交消息的编码。相反,读取这样一个提交对象的工具可能会解析出这个头,并使用提交编码的知识将提交内容正确地重新编码到它们的本地representation.
i18n.logOutputEncoding中,可能会被用来改变Git关于用户终端编码的想法,当在那里写入运行git log command.
gui.encoding:的结果时,当设置时,使标准的Git GUI工具(gitk和git gui)假设存储库中的所有文件都以指定的编码进行编码。这允许这些工具将文件内容正确地重新编码为其本机编码。可以使用.gitattributes file.中的encoding参数以文件为单位对存储库中的文件进行本机编码
那么,您可以尝试执行哪些操作来配置gitweb…这完全取决于此工具是否支持上述配置旋钮。
首先,我会尝试在您的存储库(注意:在由gitweb访问的存储库)中正确设置gui.encoding。
如果您在提交消息中使用GBK,则必须在这些提交对象中有一个适当的编码头,否则它将无法工作,我估计。如果您没有,可以考虑对您的存储库进行一次history rewriting测试。这需要做一些研究。
你也可以考虑调整你的web服务器配置,强制它运行的CGI工具,包括gitweb,在他们的环境中看到一个启用了GBK的语言环境--这可能会使gitweb在显示文件时只是“传递”你的文件内容。我不确定它会不会起作用,但至少你可以试一下。
https://stackoverflow.com/questions/20210615
复制相似问题