git-> Process-> git кодировка текста - PullRequest
0 голосов
/ 22 июня 2010

Я пытаюсь написать утилиту для переноса кода из нашего пользовательского исходного кода в git.

Сообщения 'commit' в старой системе постепенно добавлялись в текстовый файл в пути проекта, поэтомуЯ использую git для сравнения этих файлов от одной версии к другой, затем использую этот diff в качестве сообщения фиксации.

Неудивительно, что у меня проблемы с ударением.

Тестовая строкаis: éèàçüûöôëê

  1. Исходный текстовый файл (так Блокнот говорит мне) в 'ANSI'.
  2. Если я делаю diff в msysgit, я вижу это <E9><E8><E0><E7><FC><FB><F6><F4><EB><EA>
  3. Когда я запускаю вызов процесса для git с той же командой diff (см. этот вопрос), я получаю:
    1. ÚÞÓþ³¹÷¶ÙÛ
    2. ���������� с StandardOutputEncoding = Encoding.UTF8, за этот вопрос.
    3. éèàçüûöôëê с StandardOutputEncoding = Encoding.Default

Пока все хорошо, но если я отправлю éèàçüûöôëê обратно как сообщение о коммите, git скажет мне Warning: commit message does not conform to UTF-8.

Есть какие-нибудь указатели относительно того, как заставить это работать? Этот вопрос также говорит о настройке кодировки в StandardInput, но мое сообщение о коммите содержится в аргументах, а не в входных данных.

(Git также говорит, что я могу установить переменную конфигурации i18n.commitencoding, но я бы предпочел уважать формат git, если смогу)

1 Ответ

0 голосов
/ 22 июня 2010

Похоже, это не имеет никакого отношения к .net или Process, или, может быть, даже git. Насколько я могу судить, в bash все равно нельзя набирать ударения.

И несмотря на предупреждения от git, сообщения коммита читаются другими инструментами (gitk), так что, возможно, все хорошо.

...