Юникод (utf-8) с git-bash

У меня возникли проблемы с тем, чтобы unicode работал для git-bash (в Windows 7). Я пробовал много вещей без успеха. Хотя я не совсем уверен, что за это отвечает, поэтому, возможно, я работаю в неправильном направлении.

Кажется, это действительно возможно, так как кодировку cmd.exe можно изменить на юникод с помощью «chcp 65001».

Вот некоторые вещи, которые я пробовал (помимо очевидного просмотра параметров конфигурации в графическом интерфейсе).

  1. Установка переменных окружения в '.bashrc'. Я думаю, это имеет смысл, это не работает, так как я думаю, что это дело Linux. Команда «locale» не существует.

    экспорт LC_ALL=en_US.UTF-8
    экспорт ЯЗЫК=en_US.UTF-8
    ЯЗЫК экспорта = en_US.UTF-8
    
  2. Начиная с cmd.exe, изменяя кодировку на unicode с помощью «chcp 65001», а затем запуская git-bash. Это приводит к тому, что я получаю отказ в разрешении при попытке выполнить проверку моего тестового файла Unicode. Однако перехват файла без юникода работает нормально. Как показано, возвращаясь к cmd.exe, я все еще могу «привязать» файл. Используя мою кодировку по умолчанию (437), я могу преобразовать файл в bash (разрешение не отказано, но вывод подделан).

    S:\>chcp 65001
    Активная кодовая страница: 65001
    S:\>"C:\Program Files (x86)\Git\bin\sh.exe" --login -i
    Зарак@ПОЛОТЕНЧИК /z
    кот /s/unicode.txt
    кошка: ошибка записи: Отказано в доступе
    Зарак@ПОЛОТЕНЧИК /z
    кошка /s/ноуникод.текст
    азбука
    Зарак@ПОЛОТЕНЧИК /z
    L /s/unicode.txt
    -rw-r--r-- 1 zarac Администратор 7 18 мая 10:30 /s/unicode.txt
    Зарак@ПОЛОТЕНЧИК /z
    кто я
    полотенце\зарак
    Зарак@ПОЛОТЕНЧИК /z
    выход
    Z:\> введите S:\unicode.txt
    абв £
    
  3. Использование флага /U при запуске оболочки (имеет смысл, что он не работает, потому что это не совсем то, для чего он нужен, если я правильно понимаю, но он связан с юникодом, поэтому я попробовал).

    C:\Windows\SysWOW64\cmd.exe /U /C "C:\Program Files (x86)\Git\bin\sh.exe" --login -i
    
  4. Поскольку я предпочитаю использовать Console2, я попытался добавить значение двойного слова с именем CodePage со значением 65001 (десятичное число) в реестр Windows в разделе [HKEY_CURRENT_USER\Console], а также [HKEY_CURRENT_USER\Console\Git Bash]. Кажется, это имеет тот же эффект, что и настройка «chcp 65001», которая принимает «автоматический режим». (http://stackoverflow.com/questions/379240/is-there-a-windows-command-shell-that-will-display-unicode-characters)

  5. JPSoft TCC/LE

  6. PowerCMD

  7. stackoverflow

  8. duckduckgo

  9. ixquick / google

Таким образом, метод 2 кажется жизнеспособным, если проблема с разрешениями может быть решена. Тем не менее, я открыт практически для любого решения, хотя я предпочитаю, чтобы я мог использовать Console2 (в основном из-за его изящной функции вкладки). Возможно, одним из решений было бы настроить SSH-сервер, а затем использовать Putty/Kitty для подключения к нему, но это просто неправильно! ; )

ПС. Есть ли официальная документация по git-bash?

40
задан Hannes 18 May 2012 в 12:02
поделиться