WScript.Shell读取UTF8中的输出

时间:2019-03-29 14:10:19

标签: excel vba character-encoding

我正在尝试从WScript.Shells Exec返回值读取输出。 有些行包含中文/德文/西里尔字母 像这样:

  

格拉斯拉姆(Rahmen)

问题是,我在VBA脚本中收到“错误”字符。

我可以更改我的StdOut的字符集吗?我通过WScript.Shell启动的可执行文件的开发人员确保输出为UTF8。 如果我在CMD中启动可执行文件,则可以看到正确的字符。

Private oShell As Variant

Private Sub Class_Initialize()
    Set oShell = CreateObject("WScript.Shell")
End Sub

Public Function StartExeAndGetOutput(executable As String, arguments As String) As String
    Dim returnValue As Object

    Set returnValue = oShell.Exec(executable & " " & arguments)

    Dim oOutput As Object
    Set oOutput = returnValue.StdOut

    Dim s As String
    Dim sLine As String
    While Not oOutput.AtEndOfStream
        sLine = oOutput.ReadLine
        If sLine <> "" Then s = s & sLine & vbCrLf
    Wend

    StartExeAndGetOutput = s
End Function

1 个答案:

答案 0 :(得分:0)

不幸的是,但是您可以理解什么是字符集,并且您可以对UTF-8进行“转换”或“转换”,什么是标准输出?