使用vbscript创建ANSI文本文件

时间:2016-11-30 11:48:03

标签: utf-8 vbscript ansi

我必须使用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文本文件。

任何帮助?

1 个答案:

答案 0 :(得分:3)

您发布的代码不可能创建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)。