2016-11-30 120 views
1

我必須使用vbs創建一個ANSI編碼的文本文件。使用vbscript創建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文本文件。

任何幫助?

+2

你是如何確定文件是UTF8的? –

+0

你好,我用記事本+ +打開文件,我檢查了它的格式 –

+1

奇怪我不明白怎麼可以這樣說實話,你是否正確地檢查它在記事本++?你看了十六進制來確認它嗎? – Lankymart

回答

2

您發佈的代碼不可能創建UTF8編碼的輸出文件。 CreateTextFile方法僅支持ANSI(windows-1252)和Unicode(小端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)。

+0

好的,我明白了。謝謝 –

相關問題