Перенаправление командной строки теряет акценты в выводе - PullRequest
3 голосов
/ 05 октября 2011

Я хочу получить все журналы из моего проекта SVN и вывести его в файл.Проблема в том, что иногда примечания написаны на французском языке и имеют акценты "é", "à" и т. Д.

Когда я использую эту команду:

svn log svn://mysvnserver/mysite/trunk

вывод в DOSОкно в порядке.Акценты присутствуют.

Но когда я перенаправляю вывод в файл, подобный этому

svn log svn://mysvnserver/mysite/trunk > C:\releaseNotes.txt

, все акценты теряются, почему?

Я даже заставляю файл находиться в utf-8, но как только я запускаю командную строку, файл возвращается в ANSI, что делает акценты нечитаемыми.

Что мне делать?

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Прежде всего, клиент командной строки Subversion имеет множество проблем с отображением и обработкой не-ASCII символов в Windows.Авторы считают, что это не слишком большая проблема, потому что, очевидно, тот, кто должен обрабатывать больше, чем ASCII, является идиотом, особенно если он работает в Windows.Иногда это проявляется странным образом:

S:\Joey\Wikipedia Work\Flags>svn log "Flag of Čáslav.svg"
svn: 'Flag of Cáslav.svg' is not under version control

... даже если файл находится в хранилище.Некоторое время назад авторы отказались от фактической поддержки не-ASCII-символов и вместо этого решили игнорировать / исправить проблему, преобразовав все в ASCII / Latin 1, убрав акценты и т. Д. (Обратите внимание на Č против C в приведенном выше примере)чтобы обойти проблемы с отображением.Я могу попытаться найти отчет об ошибке, который был закрыт таким образом снова, но это было некоторое время.

РЕДАКТИРОВАТЬ: Использование cmd /u не работает;перенаправленный файл все еще имеет только кодировку CP1252.

Я все еще пытаюсь уговорить TortoiseSVN на запись такого файла, но пока без особого успеха, хотя мне удалось открыть окно журнала.

Ааа, что вы можете сделать, однако, это использовать опцию --xml и затем проанализировать XML, чтобы получить нужные вам данные.Файл XML использует кодировку UTF-8 и не искажает символы.Хотя это сложнее, но если у вас есть PowerShell, вам будет достаточно легко воспроизвести обычный вывод на основе XML.

0 голосов
/ 07 октября 2011

Знаете ли вы о DOS-команде chcp?

Используйте ее (с правильной кодировкой) перед тем, как svn войдет в bat-файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...