Автор Тема: Консольные проги от Sysinternals  (Прочитано 5983 раз)

Оффлайн sseleman

  • Новичок
  • *
  • Сообщений: 2
Консольные проги от Sysinternals
« : 25 Марта 2011, 22:55:52 »
Вот, например, du.exe (http://technet.microsoft.com/en-us/sysinternals/bb896651.aspx)
При натравливании на папки с русскими названиями выдает вместо них ????????...
Настройками ОС не лечится никак. Остаётся только ломать сами проги или делать враппер какой-нибудь.
Судя по таблице импорта программа пытается дополнительно работать с кодовыми страницами.

Что бы такое можно придумать для корректной русификации?
« Последнее редактирование: 25 Марта 2011, 22:56:36 от sseleman »

Оффлайн Solenij

  • Старожил
  • ****
  • Сообщений: 487
    • http://unpacking.narod.ru
Консольные проги от Sysinternals
« Ответ #1 : 29 Марта 2011, 20:38:07 »
sseleman, для консольных программ надо использовать "консольные" кодировки. В данном случае использовать кодировку CP866. Но так как это консоль, то после каждого символа необходимо, чтобы был 1 байт с нулями. Т.е., если взять слово программа в кодировке CP866, то получится вот так: AFE0AEA3E0A0ACACA0 и еще после каждой пары символов надо добавить по паре нулей: AF00E000AE00A300E000A000AC00AC00A000
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн sseleman

  • Новичок
  • *
  • Сообщений: 2
Консольные проги от Sysinternals
« Ответ #2 : 07 Апреля 2011, 15:53:12 »
спс.
тут речь идёт о том, что программа в своём коде обрабатывает кодировки и надо как-то изменить этот механизм, а не просто жёстко вшитые строки поменять. есть идейки как к этому подступиться?