1

Тема: VBS: Как отключить BOM в UTF-8?

Этот vbs скритп создаёт файл с кодировкой UTF-8.
Мне нужен файл именно без BOM, а он создаётся с ним.
Помогите решить проблему.

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

2

Re: VBS: Как отключить BOM в UTF-8?

Сохраненный файл откройте через ADODB.Stream в кодировке ascii. Далее прочитайте весь файл с 3го символа. Сохраните данные.

3 (изменено: BeS Yara, 2011-05-30 09:02:36)

Re: VBS: Как отключить BOM в UTF-8?

JSman пишет:

Далее прочитайте весь файл с 3го символа.

Тогда уж не с третьего, а с четвёртого
Согласно wiki в BOM для указания на UTF-8 используется три символа:

UTF-8
EF BB BF

4

Re: VBS: Как отключить BOM в UTF-8?

Не особо аккуратно, но наверное как то так.


Set st = CreateObject("ADODB.Stream")
st.Type=2
st.Open
st.Charset = "UTF-8"
st.WriteText("текст")
'st.SaveToFile "utf8_with_bom.txt",2
st.Position = 0
st.Type = 1
st.Position = 3
data = st.Read
st.close
st.open
st.Write data
st.SaveToFile "utf8_without_bom.txt",2
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

5

Re: VBS: Как отключить BOM в UTF-8?

BeS Yara, я с нуля считал:)