Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Encoding и CMD |
Автор: codegenz 17.9.2009, 08:15 | ||
Задача получить содержимое папки именно через командную строку. Все работает. Но при одном условии. В пути несодержится русских символов. Когда они появляются. Как на примере ниже, то в строке result пишется сообщение об ошибке. Вопрос. Как заставить понимать русские символы при передачи их с C# в cmd ??
|
Автор: Fortnox 17.9.2009, 08:45 | ||
Все потому, потому что тип string в .NET в юникоде, а командная строка Windows по-умолчанию использует кодовую страницу 866 (DOS 866), которая не понимает юникод. Решения следующие (которые я встречал): 1) При запуске процесса cmd.exe изменить его кодовую страницу, путем указания аргумента: "/k chcp кодовая_страница" 2) Перекодировать строки, которые возвращаются от cmd.exe 3) Ну а я обычно использую такой "финт ушам":
|
Автор: codegenz 17.9.2009, 09:15 |
Приогромнейшее Вам спасибо. Это как раз то что я искал! |