LINUX.ORG.RU

Русский язык и git

 


0

1

Везде использую исключительно utf-8. И нигде не наблюдается проблем с русскими символами, кроме гита. Коммиты делаю, подключившись через ssh к серверу, в vim'e. Пишу по-русски и никаких проблем. Но когда выполняю git log или git diff, то место русских символов появляются, как я понял, их коды в угловых скобках. Например,

<D0><9F><D0><BE><D0><BF><D1><8B><D1><82><D0><BA><D0><B0> ...

В гугле нашел только то, что гит по-умолчанию работает с юникодом. Откуда тогда такая проблема не пойму.

На локальной машине такой проблемы нет. Только на сервере.

А зачем ты файлы по-русски именуешь? Плохо в школе учился?

anonymous
()

Возможно, у тебя локаль не UTF-8. Проверь, что пишут echo $LANG и locale -a.

i-rinat ★★★★★
()

Коммиты делаю, подключившись через ssh к серверу

Либо на сервере нет русской локали, либо она не выбрана - к примеру sshd запрещает передачу переменных окружения LANG с клиента, а по-умолчанию она не задаётся - может быть и такое.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

и что делать? прав-то может и не быть на доустановку локали (хотя я с трудом представляю как UTF-8 может быть не установлена)

Einstok_Fair ★★☆
()
Ответ на: комментарий от Pinkbyte

Я тоже могу рассказать. Но именовать файлы по-русски — как-то уж больно вычурно! ТС туда еще пробелы пусть засунет и вопрошает, чего это у него ничего не работает...

// Eddy_Em

anonymous
()
$ locale
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8
quester ★★
()

git выводит диффы и логи через пейджер (обычно less), проверь что русский работает в пейджере без гита.

waker ★★★★★
()
Ответ на: комментарий от Pinkbyte

Либо на сервере нет русской локали

для вывода уникодных текстов русская локаль не нужна, любая utf8 должна работать. но да, часто бывает что через ssh по дефолту локаль не уникодная, особенно если ssh через putty.

waker ★★★★★
()
Ответ на: комментарий от false

Ну так ЛОР все-таки не для вантузятников, которые файлы русскими буквами называют, да еще туда запрещенные символы вставляют вроде слешей, восклицательных знаков, пробелов, амперсандов, умножений, вопросов и прочей мути.

anonymous
()
Ответ на: комментарий от anonymous

Вот оно как. Всё стало наоборот. А ведь когда я был маленький это именно из-под Линукса можно использовать любые символы в названии файлов, а в Винде чуть шаг в сторону — по морде. Но время идёт. Всё портится.

JacobTwoTwo
()

Похоже, у вас на сервере переменная окружения

LESSCHARSET=ascii
Попробуйте
unset LESSCHARSET
перед вызовом git log.

unterwulf
()

И нигде не наблюдается проблем с русскими символами

vodka, matryoshka, balalayka?

dzidzitop ★★
()

tmux используется? Там в версии 2.3 (или 2.4?) поломали отображение русских символов. Исправлено в версии 2.5.

dadd ★★★
()
Ответ на: комментарий от Deleted

Я тоже в шоке :) Никогда имена файлов по русски не называл. Даже пробелы не использую.

OverMind
() автор топика
Ответ на: комментарий от dadd

Нет, но с tmux'ом тоже была проблема. Ее исправил с помощью alias tmux='tmux -u'

OverMind
() автор топика
Ответ на: комментарий от quester

Ага, проблема с локалью была. Добавил LANG=ru_RU.utf8 в файле /etc/default/locale и все гуд.

OverMind
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.