MSI Lab - Форум по русификации

Основные форумы => Общий форум => Тема начата: sseleman от 25 Марта 2011, 22:55:52

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

Что бы такое можно придумать для корректной русификации?
Название: Консольные проги от Sysinternals
Отправлено: Solenij от 29 Марта 2011, 20:38:07
sseleman, для консольных программ надо использовать "консольные" кодировки. В данном случае использовать кодировку CP866. Но так как это консоль, то после каждого символа необходимо, чтобы был 1 байт с нулями. Т.е., если взять слово программа в кодировке CP866, то получится вот так: AFE0AEA3E0A0ACACA0 и еще после каждой пары символов надо добавить по паре нулей: AF00E000AE00A300E000A000AC00AC00A000
Название: Консольные проги от Sysinternals
Отправлено: sseleman от 07 Апреля 2011, 15:53:12
спс.
тут речь идёт о том, что программа в своём коде обрабатывает кодировки и надо как-то изменить этот механизм, а не просто жёстко вшитые строки поменять. есть идейки как к этому подступиться?