我正在处理存储库中的混合编码文件。
我的系统$LANG是en_US.UTF8,文件编码是iso-8859-1。当我运行git checkout -p HEAD file
时,git使用UTF8来显示差异。
然后我会看到类似于以下内容:
- "�" - EUR
- "�" - GBP
- "�" - JPY
+ "�" - EUR
+ "�" - GBP
+ "�" - JPY
Discard this hunk from index and worktree [y,n,q,a,d,/,j,J,g,e,?]?
问题在于,"�"不是文件的正确内容。当我运行iconv -f iso-8859-1 -t UTF8 file | less
时,我可以看到
"¤" - EUR
"£" - GBP
"¥" - JPY
当我在运行git checkout -p
时,接受或拒绝更改时,我希望能够看到确切变化的字符,而不是无信息的“�”字符。我该怎么做?
gvim
,它也应该适应该编码:LANG=en_US.iso-8859-1 GIT_EDITOR=gvim git checkout -p HEAD file
?(注意:所有内容都在一行上,变量定义在git
之前而不需要分号或输出-如果您不熟悉,请询问。) - joanis