将 vbCrLF 附加到 UCS-2 Little Endian

Append vbCrLF to UCS-2 Little Endian

我正在通过 HP-UFT(以前的 QTP)使用 vbscript。 我遇到了一个看起来很简单但无法解决的问题。

我有从某些系统导出的 .CSV 文件,但此文件中没有完成的 CRLF。

我需要一个简单的修复来 append 这个文件的新行(我知道这是可能的写入另一个文件的解决方法) 我正在像这样使用 FileSystemObject:

Set objFile = objFSO.OpenTextFile(outFile,8)' (outFile,8, true/false/default)
objFile.Write "test string" & vbCrLf ' and other different combinations

我没有使用ADODB.Stream,因为它没有附加功能,我不需要额外的文件

当我尝试在记事本中打开文件时,我看到的是空方块而不是 CRLF。我认为这是因为使用 UCS-2 Little Endian 编码创建的文件。我对 utf-8

没有这样的问题

PS 也许可以更快速地修复系统变量?我在网络中发现可以通过某些系统变量更改所有创建文件的默认编码,但找不到它的名称。 我在区域和语言中的语言 -> 管理 -> 非 Unicode 的语言是英语

如有疑问,请阅读 documentation

Syntax

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

Arguments

[...]
format
Optional. One of three Tristate values used to indicate the format of the opened file (TristateTrue = -1 to open the file as Unicode, TristateFalse = 0 to open the file as ASCII, TristateUseDefault = -2 to open the file as the system default). If omitted, the file is opened as ASCII.

您打开文件进行追加,但未指定编码,因此解释器采用 ASCII 格式。换行

Set objFile = objFSO.OpenTextFile(outFile,8)

Set objFile = objFSO.OpenTextFile(outFile, 8, False, -1)

问题就会消失。