WScript.Shell读取UTF8中的输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WScript.Shell读取UTF8中的输出相关的知识,希望对你有一定的参考价值。

我试图从WScript.Shells Exec返回值读取输出。有些行包含中文/德文/西里尔文字符,如下所示:

框架的玻璃

问题是,我在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
答案

不幸的是你不能,但是你可以理解什么是字符集,而你可以“铸造”或“转换”为UTF-8,什么是标准输出?

以上是关于WScript.Shell读取UTF8中的输出的主要内容,如果未能解决你的问题,请参考以下文章

关于Wscript.Shell中 Run参数传递

VBScript 从 Shell 获取结果

vbs中wscript.shell对象run调用dos命令的路径问题

使用以下vbscript在邮件正文中添加新行

有没有办法使用 WScript.Shell 启动使用 VBScript 最小化的程序?

Vbs Popup CreateObject("Wscript.Shell").Popup 怎么只能在开头用吗?