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中的输出的主要内容,如果未能解决你的问题,请参考以下文章
vbs中wscript.shell对象run调用dos命令的路径问题