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