如何阻止我的 vbscript 编写与我读取的文件类型不同的文件?

问题描述 投票:0回答:1

我正在用 VBScript 读写一个文件。

我的输入文件以这五个字符开头:

<?xml
。我用十六进制编辑器验证了这 5 个起始字符。输入文件是一个DITA图,如下图所示:DITA图解释.

我的输出文件以十六进制 FF FE 的 BOM 开头,所以当我尝试使用(读取)该输出文件作为我的输入文件时,它会出错,并且出现错误。这个 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

没想到输出文件这么不一样!

file vbscript codepages
1个回答
3
投票

将用于写入 OpenTextFile 语句的打开中的第二个 True 更改为零 (0)。 documentation 说这是写 ASCII.

Set FileOut = FSO.OpenTextFile("C:\foo\barOut.txt", 2, True, 0)

....

© www.soinside.com 2019 - 2024. All rights reserved.