使用 vbscript 创建 ANSI 文本文件
Create ANSI text file using vbscript
我必须使用 vbs 创建一个带有 ANSI 编码的文本文件。
如果我只是创建它,没有写任何文本,使用此代码...
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFileTxt = objFSO.objFSO.CreateTextFile("filename.txt", True, False)
Set ObjFileTxt = nothing
Set objFSO = nothing
...我得到一个 ANSI 文本文件,但是如果我尝试编写一些文本,例如...
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFileTxt = objFSO.CreateTextFile("filename.txt", True, False)
ObjFileTxt.Write "ok"
Set ObjFileTxt = nothing
Set objFSO = nothing
...我得到一个 UTF8 文本文件。
有什么帮助吗?
您发布的代码不可能创建 UTF8 编码的输出文件。 CreateTextFile
方法仅支持 ANSI (windows-1252) 和 Unicode (little endian UTF-16) 编码。
在 VBScript 中创建 UTF8 编码文件的唯一方法是 ADODB.Stream
对象:
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 'text
stream.Position = 0
stream.Charset = "utf-8"
stream.WriteText "some text"
stream.SaveToFile "C:\path\to\your.txt", 2
stream.Close
或写入单个字节(包括 BOM)。
我知道这已经很旧了,但为了将来参考...
信不信由你,在将 VBS 转换为 ANSI(UTF-8)之前,我遇到了同样的问题。然后,用它创建的每个新文本文件也都是 ANSI 而不是 UTF-8。
我必须使用 vbs 创建一个带有 ANSI 编码的文本文件。
如果我只是创建它,没有写任何文本,使用此代码...
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFileTxt = objFSO.objFSO.CreateTextFile("filename.txt", True, False)
Set ObjFileTxt = nothing
Set objFSO = nothing
...我得到一个 ANSI 文本文件,但是如果我尝试编写一些文本,例如...
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set ObjFileTxt = objFSO.CreateTextFile("filename.txt", True, False)
ObjFileTxt.Write "ok"
Set ObjFileTxt = nothing
Set objFSO = nothing
...我得到一个 UTF8 文本文件。
有什么帮助吗?
您发布的代码不可能创建 UTF8 编码的输出文件。 CreateTextFile
方法仅支持 ANSI (windows-1252) 和 Unicode (little endian UTF-16) 编码。
在 VBScript 中创建 UTF8 编码文件的唯一方法是 ADODB.Stream
对象:
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 'text
stream.Position = 0
stream.Charset = "utf-8"
stream.WriteText "some text"
stream.SaveToFile "C:\path\to\your.txt", 2
stream.Close
或写入单个字节(包括 BOM)。
我知道这已经很旧了,但为了将来参考...
信不信由你,在将 VBS 转换为 ANSI(UTF-8)之前,我遇到了同样的问题。然后,用它创建的每个新文本文件也都是 ANSI 而不是 UTF-8。