Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
Git 是否可以允许一个存储库使用utf-8编码,另一个存储库使用gbk编码?_Git_Web_Encoding - Fatal编程技术网

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

Git 是否可以允许一个存储库使用utf-8编码,另一个存储库使用gbk编码?,git,web,encoding,Git,Web,Encoding,环境: SUSE Linux企业服务器11 sp1 git版本1.6.0.2 用于访问控制的gitoite git web在apache上运行 我有两个存储库。在repo a中,它是编码 是gbk,而回购b是utf-8。 如果回购协议a有中文代码,则为中文字符 在git web上查看时,代码会很混乱 但回购协议b中的中文代码将正确显示。 所以我想问一下,GitWeb是否能够识别 不同存储库的不同编码。 并且可以显示中文代码(我对这一主题没有明确的知识;我只总结一下我对Git编码的了解。)

环境:
SUSE Linux企业服务器11 sp1
git版本1.6.0.2
用于访问控制的gitoite
git web在apache上运行

我有两个存储库。在repo a中,它是编码 是gbk,而回购b是utf-8。
如果回购协议a有中文代码,则为中文字符 在git web上查看时,代码会很混乱
但回购协议b中的中文代码将正确显示。
所以我想问一下,GitWeb是否能够识别 不同存储库的不同编码。 并且可以显示中文代码(我对这一主题没有明确的知识;我只总结一下我对Git编码的了解。)

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

  • 提交(提交消息是其中的主要部分)
  • BLOBs—文件的内容
关于提交,Git有三个控制编码的旋钮:

  • i18n.commitEncoding
    :当设置(编码名称)时,告诉Git将一个特殊的头放入一个commit对象,该对象指定commit消息的编码

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

  • i18n.logOutputEncoding
    在写入运行
    Git log
    命令的结果时,可能用于改变Git对用户终端编码的想法
  • gui.encoding
    :设置后,使标准Git gui工具(
    gitk
    Git gui
    )假定存储库中的所有文件都以指定的编码进行编码。这允许这些工具将文件内容正确地重新编码为其本机编码

    Git工具可以在每个文件的基础上暗示存储库中文件的本机编码-使用中的
    encoding
    参数

因此,关于配置
gitweb
,您可以尝试做些什么……这完全取决于此工具是否符合上述配置旋钮

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

如果在提交消息中使用GBK,那么在这些提交对象中必须有一个适当的编码头,否则它将无法工作,我认为。如果没有它们,请考虑对存储库进行测试。这需要做一些研究

您还可以考虑调整web服务器配置,强制它运行的CGI工具(包括
gitweb
)在其环境中查看启用GBK的区域设置-这可能会使
gitweb
在显示文件时仅“传递”文件内容。我不确定它是否会起作用,但至少你可以试试