我正在用VBScript读写文件。
我的输入文件以以下五个字符开头:<?xml
。我用十六进制编辑器验证了这5个起始字符。输入文件是DITA映射,例如此处显示的内容:DITA map explanation。
我的输出文件以BOM表的十六进制FF FE开头,因此当我尝试使用(读取)该输出文件作为输入文件时,它会倒转,并且出现错误。 FF FE的来源是什么?如何阻止它生成?
我在十六进制编辑器中看到的另一个区别是输入文件通常是每个字符一个字节。但是,十六进制编辑器显示输出文件的每个字符前都有00。
我开始使用.ReadLine
和.WriteLine
,但切换到.ReadAll
和.Write
认为可以解决我的问题,但没有解决。
我研究了BOM和VBScript,但没有找到解决方案。
Set FileIn = FSO.OpenTextFile("C:\foo\barIn.txt", 1)
Text = FileIn.ReadAll
FileIn.Close
Set FileOut = FSO.OpenTextFile("C:\foo\barOut.txt", 2, True, True)
FileOut.Write Replace(Text, "findThis", "useThat")
FileOut.Close
我没想到输出文件会如此不同!
答案 0 :(得分:2)
将打开用于写入OpenTextFile语句的第二个True更改为零(0)。 documentation说这写ASCII。
Set FileOut = FSO.OpenTextFile("C:\foo\barOut.txt", 2, True, 0)
....