vbscript 在读取文本文件时防止文本转换

vbscript prevent text conversion during reading from text file

我在从文本文件中读取文本时遇到问题。下面是创建文本文件(如果不存在)的代码,然后在文件中输入文本:

Dim fso, strUser, strUserInit, strUserData, strNewFile
Dim strGetUser, strNextUser, strInit
Const ForReading = 1, ForWriting = 2, ForAppending = 8

' %user% contains USERPROFILE (C:\Users\username) gathered earlier from Macro Express
strUser = "%user%"
strUserInit = strUser & "\Documents\UserInitFile.txt"

If fso.FileExists(strUserInit) Then
' Do nothing
Else
    strUserData = UCase(InputBox("Please enter your first and last initials (ex. John Doe = JD)", "Enter Initials"))
    Set strNewFile = fso.CreateTextFile(strUserInit, ForWriting, True)
    strNewFile.WriteLine(strUserData)
    strNewFile.Close
End If

Set strGetUser = fso.OpenTextFile(strUserInit, ForReading)
Do Until strGetUser.AtEndOfStream
   strNextUser = strGetUser.ReadAll
Loop

strInit = Left(strNextUser, 2)

实际情况是,当提示输入第一个和最后一个首字母时,我输入了首字母 "LP"。但是,当我从文件中读取时,它们最终变成了“ÿþ”。我查看了创建的文件,它显示 "LP"。从文件读取时如何防止文本被转换?由于其他原因,我使用了完全相同的代码,并且在从文件中读取时从未转换过文本。

使用docs看看为什么

fso.CreateTextFile(strUserInit, ForWriting, True)

创建一个 UTF-16 编码的文件。请参阅 以了解为什么我担心会有一种病毒四处传播,使人们混淆 .OpenTextFile 和 .CreateTextFile。