簡體   English   中英

是否可以為一個存儲庫允許utf-8編碼,而為另一個存儲庫允許gbk編碼?

[英]is it possible to allow utf-8 encoding for one repository and gbk encoding for another?

環境:
SUSE Linux企業服務器11 sp1
git版本1.6.0.2
gitoite用於訪問控制
git web在apache上運行

我有兩個存儲庫。 在repo a中,其編碼為gbk,而repo b為utf-8。
那么如果repo a具有中文代碼,則在git web查看時,漢字將是混亂的代碼
但是repo b中的中文代碼將正確顯示。
所以我想問一問git web是否可以識別不同存儲庫的不同編碼。 並可以顯示中文代碼

(我不具備有關該主題的明確知識;我只是總結一下我對Git中編碼的了解。)

有兩種類型的對象,這是主題應被解釋為在一定的編碼是所述內容:

  • 提交(提交消息是其中的主要部分)。
  • BLOB —文件的內容。

關於提交,Git具有三個配置旋鈕來控制編碼:

  • i18n.commitEncoding :設置(為編碼的名稱)時,告訴Git將特殊的標頭放入提交對象中,該對象指定提交消息的編碼。

    相反,讀取此類提交對象的工具可能會解析出此標頭,並使用提交編碼的知識將提交內容正確地重新編碼為它們的本機表示形式。

  • 當在其中寫入運行git log命令的結果時,可以使用i18n.logOutputEncoding來更改Git關於用戶終端編碼的想法。
  • gui.encoding :設置后,使標准Git GUI工具( gitkgit gui )假定存儲庫中的所有文件均以指定的編碼方式進行編碼。 這使這些工具可以將文件內容正確地重新編碼為它們的本機編碼。

    可以使用.gitattributes文件中encoding參數,以每個文件為基礎提示Git工具對存儲庫中文件的本機編碼。

因此,您可以嘗試如何配置gitweb ……這完全取決於此工具是否支持上述配置旋鈕。

首先,我會嘗試在您的存儲庫中正確設置gui.encoding (注意:在gitweb訪問的存儲庫中)。

我認為,如果您在提交消息中使用GBK, 必須在這些提交對象中使用適當的編碼標頭,否則它將無法正常工作。 如果沒有它們,請考慮重寫存儲庫的測試歷史記錄 這將需要進行一些研究。

您可能還會看到調整Web服務器配置,以強制其運行的CGI工具(包括gitweb在其環境中查看啟用了GBK的語言環境-這可能會使gitweb在顯示文件時只是“傳遞”文件的內容。 我不確定是否會成功,但至少您可以嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM