vbscript在从文本文件中读取时阻止文本转换

时间:2015-02-13 15:24:39

标签: vbscript

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

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”。从文件读取时如何防止文本被转换?我出于其他原因使用了相同的确切代码,从文件中读取时从未转换过文本。

1 个答案:

答案 0 :(得分:1)

使用docs查看原因

fso.CreateTextFile(strUserInit, ForWriting, True)

创建一个UTF-16编码文件。请参阅this以了解为什么我担心会出现导致人们混淆的病毒.OpenTextFile和.CreateTextFile。