将文本附加到文本文件会产生奇怪的字符吗?

将文本附加到文本文件会产生奇怪的字符吗?

成功将文本附加到文本文件后,我得到了奇怪的字符,是因为我没有设置正确的格式吗?这是我尝试过的代码:

Dim fso As Object
Dim Msg As string
Msg = "Hello World"
Set fso = CreateObject("Scripting.FileSystemObject")
Dim Fileout As Object
Dim filePath As String
filePath = "C:\file.txt"
Const ForAppending = 8
Set Fileout = fso.OpenTextFile(filePath, ForAppending) <<== might be the error not sure
Fileout.WriteBlankLines (1)
Fileout.Write Msg
Fileout.Close
Set fso = Nothing
Set Fileout = Nothing

输出:

测试我的附加内容。਍牅潲⁲‣ㄠ〰‴<<<== 将那些东西附加到附加内容上。

答案1

我将文件格式设置为“Unicode”,而不是默认格式,这样就可以写入字节顺序标记 (BOM),其他 MS 应用程序可以使用它来识别文件编码

如果您的文本仅限于 ASCII,我也会尝试该格式。

我不知道这些在附加时对初始 BOM 有什么影响(可能没有)。

对象.OpenTextFile(文件名[, io模式[, 创建[, 格式]]])

格式参数可以具有以下任意设置:

Constant           Value  Description
TristateUseDefault    2   Opens the file using the system default.
TristateTrue          1   Opens the file as Unicode.
TristateFalse         0   Opens the file as ASCII.

Visual Basic 应用程序参考 - OpenTextFile 方法

请注意,“Unicode”是 Microsoft 对 UTF-16 LE 编码的误称。有几种不同的 Unicode 编码。可以说最合适的一种是 UTF-8,但显然无法在此 API 中明确指定。

答案2

首先用记事本打开文本文件,在另存为对话框中检查编码,然后在 .OpenTextFile 方法的第 4 个参数中设置相同的编码(-2 - 系统默认值,-1 - Unicode,0 - ASCII)。我相信您的文件具有 Unicode 编码,因此第 4 个参数应该是 -1。

相关内容