Сделать git diff показать кодированные символы UTF8 правильно
У меня есть файл со шведскими символами в нем (åäö), закодированный с помощью UTF8.
Если я cat
файл отображается нормально, но если я делаю git diff
, то печатаются специальные символы, например, как < F6 > .
Пример git diff
вывод:
- name: 'Magler<F6>d, S<F6>der<E5>sen',
Что я хотел увидеть:
- name: 'Magleröd, Söderåsen',
Я нашел еще один вопрос, связанный с git и проблемами с кодировкой: git, msysgit, accents, utf-8, окончательные ответы
В нем говорится, что все проблемы должны быть исправлены в версии git версии 1.7.10. У меня версия 1.8.1.2
Что я могу сделать, чтобы git diff правильно отображал åäö?
Ответы
Ответ 1
@matt и @twalberg были правильными. Файл не был закодирован в кодировке UTF-8. Пытаться понять это не помогло то, что мой терминал (hterm) не может правильно ввести åäö (но он может отображать и копировать/вставлять их)...
iconv -f ISO-8859-1 -t UTF-8 in.txt > out_utf-8.txt
решил мою проблему
Ответ 2
git
выгружает необработанные байты. В этом случае все равно, что такое кодировка вашего файла. Выбранный <F6>
, который вы видите, исходит от less
, который предположительно настроен как ваш PAGER
. Попробуйте установить:
LESSCHARSET=UTF-8
Ответ 3
git журнал будет открыт меньше, чем vi.
Итак, вы должны установить lang на меньшее.
$ export LESSCHARSET=utf-8 && git log