VBS中使用Adodb.Stream输出不带BOM的UTF-8文件

时间:2023-01-06 00:08:32
需求是在VBS中使用Adodb.Stream(或其他方法)输出不带BOM的UTF-8文件

在调用SaveToFile()方法之前,需要将流转换为二进制类型。
Set stream =  getStream()'此处获得一个不带BOM的stream
stream.Position = 0
stream.Type = 1
stream.SaveToFile fileName, 2

但是Adodb.Stream在输出的时候发现UTF-8文本流的开头缺少BOM,又会再次将其加上。
如果将流类型改为二进制,输出时就可以绕过Adodb.Stream的BOM监测了。

问题:虽然将流转换为二进制类型可以绕过Adodb.Stream的BOM监测,但是输出文件的Encoding不是UTF-8。如何能绕过Adodb.Stream的BOM监测,同时输出不带BOM的UTF-8文件呢?

谢谢

5 个解决方案

#1


该回复于2012-08-10 15:15:48被版主删除

#2


我稀罕这个头像

#3


该回复于2012-08-11 09:43:46被版主删除

#4


此问题用1楼的代码没有问题。
只不过在没有日文或是可识别为UTF-8的字符时,文件的Encoding会显示为Shift-JIS。
纠结了好久的问题,总是解决了, VBS中使用Adodb.Stream输出不带BOM的UTF-8文件

#5


1楼代码在哪?被删了?

#1


该回复于2012-08-10 15:15:48被版主删除

#2


我稀罕这个头像

#3


该回复于2012-08-11 09:43:46被版主删除

#4


此问题用1楼的代码没有问题。
只不过在没有日文或是可识别为UTF-8的字符时,文件的Encoding会显示为Shift-JIS。
纠结了好久的问题,总是解决了, VBS中使用Adodb.Stream输出不带BOM的UTF-8文件

#5


1楼代码在哪?被删了?