Как сделать Git корректно отображать кодированные пути UTF-8 в окне консоли?
У меня есть имена файлов в UTF-8, git обрабатывает их O.K, он будет правильно создавать файлы, а страницы github также отображают их правильно. За исключением того, что он отобразит его в консоли, как показано ниже. Возможно ли сделать git отображение кодированных символов UTF-8 за пределами ASCII 127 в консоли правильно?
git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .gitignore
# modified: editfile.js
# modified: "\321\203\321\201\321\202\320\260\320\275\320\276\320\262"
#
no changes added to commit (use "git add" and/or "git commit -a")
ОБНОВЛЕНИЕ
Меня спросили о моей локали, вот результат команды locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Ответы
Ответ 1
git всегда использовал восьмеричный дисплей utf8, и один из способов показать фактическое имя - с помощью printf
в bash shell.
В соответствии с этим комментарием это работает даже в Windows msysgit bash, который включает printf
(и может использоваться как в Как использовать восьмеричные символы в git checkout? ").
Но это не изменяет вывод команд типа git status
или git ls-files
.
Однако, поскольку git 1.7.10 ввел поддержку unicode, эта страница wiki упоминает:
По умолчанию git будет печатать имена файлов, отличных от ASCII, в восьмеричной нотации, т.е. "\nnn\nnn...
". Это можно отключить с помощью:
git config core.quotepath off
Или для всех репозиториев, используя:
git config --global core.quotepath off
Имейте в виду, что:
Шрифт консоли по умолчанию не поддерживает Unicode. Измените шрифт консоли на шрифт TrueType, например Lucida Console или Consolas.
Программа установки может сделать это автоматически, но только для пользователя установки.