Что нового

[Данные, строки] cmd, stdread и русские буквы

EqKeeper

Новичок
Сообщения
29
Репутация
1
Доброго времени суток!

Случилась следующая неприятность: из потока (результат работы cmd: dir) считывается информация. Проблема в том, что если читать ее как текст, то русские буквы выходят кракозяброй. Следовательно читать нужно как бинарные данные, однако их тоже надо как-то конвертнуть в человеческие буковки и BinaryToString($str, 1) в этом случае выводит ту же пакость, что и попытка считать поток, как текст. Вызов его с параметрами 2, 3, 4 тоже не дал положительных результатов.

Помогите кто-нибудь!
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#Include <Constants.au3>
#Include <WinAPIEx.au3>

Global $Text = ''

$Pid = Run('cmd /k dir', @ScriptDir, @SW_HIDE, $STDOUT_CHILD)
While 1
    $Data = StdoutRead($Pid)
    If @error Then
		ExitLoop
	EndIf
	$Text &= _WinAPI_OemToChar($Data)
Wend

ConsoleWrite($Text & @CR)


WinAPIEx.au3
 
Автор
E

EqKeeper

Новичок
Сообщения
29
Репутация
1
Огромное спасибо! Сейчас попробую! :smile:
Помогло! Еще раз спасибо!
 
Верх