12:23

Добрый день=)
Есть USB-модем от билайна. При проверке баланса фирменной программой все ОК и нет проблем с кодировкой.
А вот если открыть, к примеру, Putty и дать соответствующий USSD-запрос в COM-порт, то ответ придет закодированный (QPSK или нечто в этом роде). В линуксе все это решается скриптом и дальнейшей раскодировкой перлом. А как это сделать в винде? Например, исполняемый файл получает закодированный вывод Putty и направляет в обработку перлу, после чего показывает нормальный результат. Возможно?
Вопрос не только теоретический, но и практический, т.к. фирменный софт живет своей непонятной жизнью и оставляет желать лучшего.

Приложение.

Изображение - savepic.su — сервис хранения изображений

Комментарии
14.02.2012 в 13:57

Аккаунт для использования в публичных местах. Основной ник - Trotil.
Ну, возможно.
Программно можно запустить любой процесс.
Putty может писать в файл весь вывод.
Скрипт perl переносим на Windows.
Возможно.
14.02.2012 в 15:57

Sanctus Satanas
Гы. Это, кстати, UTF-16BE, но хексом. )
"Vash balans 165.67 rub. Bonus: 0.00 rub. Besplatnyh sekund: 0.0. Dopolnitel'nye balansy: #106#"
"165.67р. 0 Кб."
14.02.2012 в 19:58

UTF-16BE От него не легче :) Чем перевели?
14.02.2012 в 21:35

Sanctus Satanas
Otten, кодировку на глаз определил, а под рукой был php — поэтому это выглядело примерно как iconv('UTF-16BE', 'UTF-8', pack('h*', $data)) Разве что поигрался с big-endian/low-endian (постоянно путаю) и h/H (аналогично).
15.02.2012 в 16:09

Ок, наводка принята.
18.02.2012 в 15:01

Sanctus Satanas
Ну сам текст, если что, я бы регуляркой выделял. Т.к. остальные части-то перекодировать никуда не надо.
Что-нибудь типа /"((?:[0-9A-F]{2})+)"/
И да, я думаю, вы в курсе, что в винде тоже есть перенаправление ввода/вывода.
20.02.2012 в 00:25

Спасибо, ознакомлюсь.