gpt4 book ai didi

vbscript - 为什么VBS不能正确读取这个文本文件?

转载 作者:行者123 更新时间:2023-12-02 19:39:04 32 4
gpt4 key购买 nike

我有以下代码来读取文本文件:

Option Explicit 
Dim InputFile
Dim FSO, oFile
Dim strData

InputFile = "C:\Program Files (x86)\AVG\CloudCare\ClientVersion.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFile = FSO.OpenTextFile(InputFile)
strData = oFile.ReadAll
oFile.Close
msgbox strData

ClientVersion.txt的内容是:

CLIENT_VERSION_STRING   _T("3.5.2") //

当我运行 VBS 代码时,我得到以下结果:

VBS txt file read

如果我在同一位置创建一个具有相同内容的新文本文件,它可以正常工作。 VBS 无法读取这个简单的文本文件是否有原因?我看不到该文件的权限有任何问题。

最佳答案

ÿþbyte order markUTF-16 Little Endian 编码文件。 UTF-16(与 ASCII/ANSI 不同)对一个字符使用两个字节,而不是一个字节。但是,OpenTextFile 方法默认将文件读取为 ASCII 文件,因此每个 2 字节字符都会被解释为两个单独的字符。

来自documentation :

Syntax

object.OpenTextFile(filename[, iomode[, create[, format]]])

Arguments
[…]
format
    Optional. One of three Tristate values used to indicate the format of the opened file (TristateTrue = -1 to open the file as Unicode, TristateFalse = 0 to open the file as ASCII, TristateUseDefault = -2 to open the file as the system default). If omitted, the file is opened as ASCII.

读取文件时指定正确的编码,问题就会消失:

Set oFile = FSO.OpenTextFile(InputFile, 1, False, -1)

关于vbscript - 为什么VBS不能正确读取这个文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37564670/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com