Войти

Показать полную графическую версию : [решено] Как создать файл в кодировке UTF-8 с помощью VBScript?


Zeron
29-05-2011, 20:43
Здравствуйте, вот так вот создаётся текстовый файлик на языке VBS:

Dim gg, gm
Set gg = CreateObject("Scripting.FileSystemObject")
Set gm = gg.CreateTextFile("text.txt", True)
gm.WriteLine("текст текст текст")
gm.WriteLine("текст текст текст")
gm.WriteLine("текст текст текст")
gm.Close

Подскажите, что нужно сделать чтобы этот файлик создавался в кодировке UTF-8?




Я нашёл скрипт который изменяет кодировку UTF-8 на 1251, но мне то нужно наоборот. А мозгов изменить скрипт не хватает((
Вот и он:
FileIn = "in.txt"
FileOut = "out.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(FileOut, 2, vbTrue)
strText = FileDecode(FileIn, "utf-8")
objFile.WriteLine(strText)

Function FileDecode (strFile, strCP)
Set Stream = CreateObject("ADODB.Stream")
With Stream
.Type = 2
.Mode = 3
.CharSet = strCP
.Open
.LoadFromFile(strFile)
End With

FileDecode = Stream.Readtext()
Stream.Close
End Function


Прошу помочь мне. Очень нужно.

Zeron
29-05-2011, 22:30
Нашел решение:

Set st = CreateObject("ADODB.Stream")
st.Type=2
st.Open
st.Charset = "UTF-8"
st.WriteText("текст")
st.SaveToFile("1234.txt")


Но как оказалось мне нужен файл именно без BOM, а он создаётся с ним.
Помогите решить проблему.

amel27
30-05-2011, 03:50
Set utf = CreateObject("ADODB.Stream")
utf.Type=2
utf.Charset = "UTF-8"
utf.Open
utf.WriteText "Это текст"
utf.Position=3

Set bin = CreateObject("ADODB.Stream")
bin.Type=1
bin.Open

utf.CopyTo bin
bin.SaveToFile("1234.txt")




© OSzone.net 2001-2012