replace脚本不能使用unicode txt文件

我正在尝试使用下面的代码在文本文件中用逗号replace所有的选项卡:

Const ForReading = 1 Const ForWriting = 2 Const TristateTrue = -1 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\Users\Tom\Desktop\CSV.txt", ForReading, TristateTrue) strText = objFile.ReadAll strTab = vbTab strText = Replace(strText, strTab, ",") objFile.Close Set objFile = objFSO.OpenTextFile("C:\Users\Tom\Desktop\CSV.txt", ForWriting, TristateTrue) objFile.Write strText objFile.Close 

但是,当为附件运行这个时,我得到错误:

第17行字符1无效的过程调用或参数

此文件是从Excel创build的unicode txt文件。

如果我打开文件并以UTF-8格式保存,我的代码将正常工作。 但是,我找不到在代码中进行这种转换的方式,而且没有出现乱码的结果。

任何人都可以帮我得到我的代码与原始的Unicode文本文件工作或find使用可执行代码(VBA /批处理)将文件转换为UTF-8的方式?

从帮助

打开指定的文件并返回一个TextStream对象,该对象可用于读取,写入或附加到文件。

object.OpenTextFile(filename[, iomode[, create[, format]]])

目的

需要。 对象始终是FileSystemObject的名称。

文件名

需要。 用于标识要打开的文件的stringexpression式。

IOMODE

可选的。 可以是三个常量之一:ForReading,ForWriting或ForAppending。

创build

可选的。 布尔值,指示如果指定的文件名不存在,是否可以创build新文件。 如果创build了新文件,则值为True,如果未创build则为False。 如果省略,则不会创build新文件。

格式

可选的。 三个三位值之一,用于指示打开文件的格式。 如果省略,则文件以ASCII打开。

您正在指定Create with TristateTrue not Format

您可以省略下面的False(False是默认值),但不是。 位置参数必须按顺序指定,缺less逗号。 尾随的逗号也可以省略。

objFSO.OpenTextFile(“C:\ Users \ Tom \ Desktop \ CSV.txt”,ForWriting, False, TristateTrue)