Подтвердить что ты не робот

Сделать 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 правильно отображал åäö?

4b9b3361

Ответ 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