我通过HP-UFT(以前的QTP)使用vbscript。 我面临的问题看起来非常简单,但我无法修复它。
我有从某个系统导出的.CSV文件,此文件中没有完成的CRLF。
我需要一个简单的修复追加新行到此文件(我知道这可能是写入另一个文件的解决方法) 我这样使用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或许可以更快速地修复系统变量?我在网络中发现可以通过一些系统varibale更改所有创建文件的默认编码,但是找不到它的名字。 我在地区和语言中的语言 - >行政 - >非Unicode的语言是英语
答案 0 :(得分:2)
如有疑问,请阅读documentation:
语法
object.OpenTextFile(filename[, iomode[, create[, format]]])
参数
[...]
格式
可选的。三个三态值中的一个用于指示打开文件的格式( TristateTrue = -1以将文件打开为Unicode, TristateFalse = 0以ASCII格式打开文件, TristateUseDefault = -2打开文件作为系统默认值)。如果省略,则文件以ASCII格式打开。
您打开文件以进行追加,但不指定编码,因此解释器采用ASCII格式。改变行
Set objFile = objFSO.OpenTextFile(outFile,8)
到
Set objFile = objFSO.OpenTextFile(outFile, 8, False, -1)
问题就会消失。