簡體   English   中英

Git:Diff不處理UTF-8以外的字符編碼?

[英]Git: Diff does not handles character encoding other than UTF-8?

創建了一個repo,添加了包含以下內容的UTF8和Latin2編碼文件:

árvíztűrő tükörfúrógép
ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP

請參閱https://github.com/bimlas/git-test/commit/872370caf91f1faaf931c1228c797f3d10d6435d

git log -p 82904e60的輸出是:

commit 82904e60d1940c036c8190e2a41de6b423727a7c
Author: BimbaLaszlo <bimbalaszlo@gmail.com>
Date:   Mon Jul 27 14:38:35 2015 +0200

    initial commit

diff --git a/fileencoding/latin2.txt b/fileencoding/latin2.txt
new file mode 100644
index 0000000..7165bc9
--- /dev/null
+++ b/fileencoding/latin2.txt
@@ -0,0 +1,2 @@
+<E1>rv<ED>zt<FB>r<F5> t<FC>k<F6>rf<FA>r<F3>g<E9>p^M
+<C1>RV<CD>ZT<DB>R<D5> T<DC>K<D6>RF<DA>R<D3>G<C9>P^M
diff --git a/fileencoding/utf8.txt b/fileencoding/utf8.txt
new file mode 100644
index 0000000..80e1878
--- /dev/null
+++ b/fileencoding/utf8.txt
@@ -0,0 +1,2 @@
+árvíztűrő tükörfúrógép^M
+ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP^M

我在Linux和Windows(我的語言環境是Latin2)上輸出相同的輸出。 沒有尋呼機( git --no-pager log -p 82904e60 )嘗試,沒有轉義碼得到相同的結果:

commit 82904e6
Author: BimbaLaszlo <bimbalaszlo@gmail.com>
Date:   2015-07-27 14:38:35 +0200

    initial commit

diff --git a/fileencoding/latin2.txt b/fileencoding/latin2.txt
new file mode 100644
index 0000000..7165bc9
--- /dev/null
+++ b/fileencoding/latin2.txt
@@ -0,0 +1,2 @@
+�rv�zt�r� t�k�rf�r�g�p
+�RV�ZT�R� T�K�RF�R�G�P
diff --git a/fileencoding/utf8.txt b/fileencoding/utf8.txt
new file mode 100644
index 0000000..80e1878
--- /dev/null
+++ b/fileencoding/utf8.txt
@@ -0,0 +1,2 @@
+árvíztűrő tükörfúrógép
+ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP

latin2.txt的日志是相同的,因此問題不是由一個輸出中不同編碼文件的混合引起的。

如何設置Git來打印即使沒有尋呼機也應該出現的字符?

編輯

我認為問題與終端無關,例如在Windows PowerShell上, latin2.txt很好,但是utf8.txt很奇怪:

具有不同輸出的相同編碼

Git根本不關心字符編碼。 一個文件只是一堆字節。

顯示由您的終端完成。 如果將其配置為以UTF-8解碼,則您的latin-2文件似乎已損壞。 如果將其配置為解碼為latin-2,則UTF-8文件似乎已損壞。

也許encoding屬性(參見git help gitattributes )能夠給一些工具提示如何正確解碼文件,但我從未使用過這個。 例如,github可能足夠聰明,可以查看此屬性並以不同方式解碼這些文件。

暫無
暫無

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

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