我有一个带有瑞典字符的文件(åäö),用UTF8编码。
如果我cat
该文件显示正常,但如果我git diff
,则会打印特殊字符,例如< F6&gt ;.
示例git diff
输出:
- name: 'Magler<F6>d, S<F6>der<E5>sen',
我想看到的内容:
- name: 'Magleröd, Söderåsen',
我发现了另一个与git和编码问题相关的问题:git, msysgit, accents, utf-8, the definitive answers 它说所有问题都应该在git版本1.7.10中修复。我有1.8.1.2版本
如何才能正确显示git diff?åäö?
答案 0 :(得分:50)
git
正在转出原始字节。在这种情况下,它并不关心文件的编码。您看到的突出显示的<F6>
来自less
,可能是PAGER
。尝试设置:
LESSCHARSET=UTF-8
答案 1 :(得分:1)
@matt和@twalberg是正确的。该文件实际上不是UTF-8编码的。我的终端(hterm)无法正确输入åäö(但它可以显示和复制/粘贴它们)这一事实并没有帮助解决这个问题......
iconv -f ISO-8859-1 -t UTF-8 in.txt > out_utf-8.txt
解决了我的问题
答案 2 :(得分:0)
git log将通过less not vi打开。
所以你应该把lang设置为更少。
$ export LESSCHARSET=utf-8 && git log