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

Как предотвратить "svn diff" от создания выхода Unicode в Windows

В моем окне Windows я попытался создать патч Subversion, используя команду svn diff > my_patch.diff. Полученный файл был закодирован с помощью UTF-16, а не UTF-8 или ASCII, поэтому, когда я попытался использовать patch (из GnuWin32), чтобы применить патч, это не сработало.

Мне удалось преобразовать файл исправления в UTF8, открыв его в "Блокноте" и сохранив в качестве нужного формата, а patch обработал его после этого. Но есть ли способ получить svn diff для создания UTF8 в Windows?


Обновление: Как показывает мой ответ, проблема действительно не связана с Subversion, diff или patch. Это был PowerShell, который так хорошо помог преобразовать вывод в Unicode. Я оставляю вопрос как есть, так что кто-то с подобной проблемой может наткнуться на него.

4b9b3361

Ответ 1

После долгих царапин и экспериментов с различными утилитами diff я понял это:

Я запускал мой svn diff в окне командной строки PowerShell. Операторы перенаправления вывода PowerShell преобразуют вывод в Unicode.

Если я запускаю svn diff > my_patch.diff в оболочке cmd.exe, тогда все работает нормально.

Чтобы сделать эту работу в PowerShell, необходимо использовать следующую команду:

svn diff | out-file -encoding ascii my_patch.diff

Я уверен, что в Microsoft есть кто-то, кто считает, что это поведение действительно потрясающе.