Как вывести выходные данные `exe c .Command` без ломаных символов - PullRequest
0 голосов
/ 26 февраля 2020

Я попытался запустить этот исходный код, чтобы получить вывод команды cmd.

cmd, err := exec.Command("systeminfo").Output()
if err != nil {
    return nil, err
}
fmt.Println(string(cmd))
return cmd, nil

Но результат похож на этот рисунок.

enter image description here

Вывод включает в себя корейский язык, и отображаются только Engli sh и цифры, все остальные символы разбиты.

I Я не уверен, как решить эти проблемы кодирования.

1 Ответ

0 голосов
/ 26 февраля 2020

Я решил проблему с этим кодом

//import
//"golang.org/x/text/encoding/korean"
//"golang.org/x/text/transform"
cmd, err := exec.Command("systeminfo").Output()
if err != nil {
    return nil, err
}

bufs := new(bytes.Buffer) 
wr := transform.NewWriter(bufs, korean.EUCKR.NewDecoder())
wr.Write(cmd)
wr.Close()
...