VBS 以 utf-8 格式从打开的 csv 文件中读取内容

问题描述 投票:0回答:1

我正在尝试读取文件,这些文件有时由用户在 Excel 应用程序中打开,但我无法关闭它们。 我尝试使用 ADO Stream 对象,它给我错误“文件无法打开”。当我关闭文件时,它工作正常。

Set oTxtStream = CreateObject("ADODB.Stream")
oTxtStream.CharSet = "utf-8"
oTxtStream.Open
Call oTxtStream.LoadFromFile(sMdmTestMetadataResults)

我发现唯一有效的方法是来自 FileSystemObject 的 OpenTextFile() 。但当我研究它时,它用 utf-16 读取,但没有 utf-8。

Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\LOCAL\Jonas\resources\xls\MdmTestMetadata.csv", ForReading)
content = file.ReadAll

有没有办法从打开的文本文件中获取utf-8格式的文件内容?

尝试了描述中的方法描述

csv file vbscript
1个回答
0
投票

ADODB.Stream 需要对文件进行独占访问。您可以尝试先使用

fso.CopyFile
将打开的文件复制到临时文件。 CopyFile 不需要对文件进行独占访问。然后可以使用 ADODB.Stream 读取该临时文件。但是,如果复制打开的文件,则存在数据完整性受到损害的风险。

© www.soinside.com 2019 - 2024. All rights reserved.