Как это возможно. В XP ru действительно ipconfig через поток присылает данные сразу в WIN-1251, при этом в консоле печатает как DOS-866.
Впервые такое вижу.
Оказывается программа действительно умеет определять тип дескриптора (консоль или файл) с помощью API-функции GetFileType
regist, во ты задачу подкинул. До сих пор решаю. Похоже чисто средствами Batch ее не одолеть.
При попытке малейших манипуляций с дескрипторами, ipconfig преобразовует все к 1251.
Еще думаю...
кстати почему-то раньше думал, что и там системная кодовая страница 866, а оказывается она 437 . Видно отсюда и идут косяки различия в выводах на системах с MUI и без.
Кодировка имен файлов в ZIP-архиве
WinRar поступил аналогично, а встроенный в систему WinZIP вообще отказался распаковать написав, что нет файлов для распаковки.
СР-437 (Lat-US, ANSI) содержит только символы с кодами 0х00 - 0x7F - латиницу и спецзнаки, а в CP-866 (Cyr-RU) используется два диапазона - латиница 0x00 - 0x7F и дополнительный на который и отображены символы кириллицы 0x80 -0xFF. При распаковке имена файлов будут воссозданы правильно, НО! кодовая страница ОС их не поддерживает и выводится мусор.