Проблема с кодировкой.

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,577
Реакции
6,024
Баллы
798
Как это возможно. В XP ru действительно ipconfig через поток присылает данные сразу в WIN-1251, при этом в консоле печатает как DOS-866.
Впервые такое вижу.
Оказывается программа действительно умеет определять тип дескриптора (консоль или файл) с помощью API-функции GetFileType

regist, во ты задачу подкинул. До сих пор решаю. Похоже чисто средствами Batch ее не одолеть.
При попытке малейших манипуляций с дескрипторами, ipconfig преобразовует все к 1251.
Еще думаю...
 

regist

гоняюсь за туманом
Ассоциация VN/VIP
VIP
Разработчик
Сообщения
13,085
Реакции
6,258
Баллы
1,008
у меня MUI - так что на своей системе я это проверять не могу (проблема не воспроизводится).
кстати почему-то раньше думал, что и там системная кодовая страница 866, а оказывается она 437 ;). Видно отсюда и идут косяки различия в выводах на системах с MUI и без.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,577
Реакции
6,024
Баллы
798
Неа, не потому.
Версии ipconfig у них разные (оригинал и локализации). А есть там MUI или нет, это только на язык (EN,RU) влияет.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,577
Реакции
6,024
Баллы
798
Да, но это тоже OEM-кодировка: Code Page Identifiers (Windows)
Влияния на русский язык здесь не будет.
 

regist

гоняюсь за туманом
Ассоциация VN/VIP
VIP
Разработчик
Сообщения
13,085
Реакции
6,258
Баллы
1,008
Да, но это тоже OEM-кодировка: Code Page Identifiers (Windows)
Влияния на русский язык здесь не будет.
Кодировка имен файлов в ZIP-архиве
WinRar поступил аналогично, а встроенный в систему WinZIP вообще отказался распаковать написав, что нет файлов для распаковки.
 

regist

гоняюсь за туманом
Ассоциация VN/VIP
VIP
Разработчик
Сообщения
13,085
Реакции
6,258
Баллы
1,008
Да, но это тоже OEM-кодировка: Code Page Identifiers (Windows)
Влияния на русский язык здесь не будет.
....
СР-437 (Lat-US, ANSI) содержит только символы с кодами 0х00 - 0x7F - латиницу и спецзнаки, а в CP-866 (Cyr-RU) используется два диапазона - латиница 0x00 - 0x7F и дополнительный на который и отображены символы кириллицы 0x80 -0xFF. При распаковке имена файлов будут воссозданы правильно, НО! кодовая страница ОС их не поддерживает и выводится мусор.
 
Сверху Снизу