Пишу GUI для работы с ADB. При получении списка папок все символы (русские) отображаются «как надо». А вот при передаче этих же символов (переход в подкаталог) получаю сообщение «No such file...». Вывод в консоль русских символов в лучших традициях Windows — крякозябры.
Вопрос 1: все решится преобразованием (Unicode -> CP866) аргументов перед передачей процессу?
Вопрос 2: имеются ли такие подводные камни в других ОС? Насколько я знаю, в тех же линуксах консоль юникодовая.
Вопрос 1: все решится преобразованием (Unicode -> CP866) аргументов перед передачей процессу?
если консоль в cp866, то да.
Вопрос 2: имеются ли такие подводные камни в других ОС? Насколько я знаю, в тех же линуксах консоль юникодовая.
В подавляющем большинстве — да, но есть ненулевая вероятность нарваться на машину какого-нибудь ретрограда с koi8-r, поставленной ради экономии байтов.
Подводные камни: могут оказаться нерусские форточки с русскими файлами, или файлы на нескольких языках вперемешку. В обоих случаях 866 и 1251 не спасут, лучше сразу передавать юникод. В жаве был баг с передачей юникодных аргументов процессу, но вроде его недавно пофиксили.