2016-11-30 3 views
1

Мне нужно создать текстовый файл с кодировкой ANSI с помощью vbs.Создайте текстовый файл ANSI с помощью vbscript

Если я просто создать его, не писать любой текст, используя этот код ...

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

Здравствуйте, я открыл файл с помощью Notepad ++, и я проверил его формат –

+1

Странно. Я не вижу, как это может быть честно, правильно ли вы проверяете его в Notepad ++? Вы посмотрели на шестерку, чтобы подтвердить это? – Lankymart

ответ

2

Невозможно, чтобы код, который вы отправили, создавал выходной файл с кодировкой UTF8. Метод CreateTextFile поддерживает только кодировки ANSI (windows-1252) и Unicode (малоконечные UTF-16).

Единственные способы создания UTF8 кодировке файлов в VBScript являются 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

ОК, я понял. благодаря –

Смежные вопросы