Vb6 使用TriStateUseDefault时,如何确定文件编码
我有一些代码,它使用fileSystemObject打开一个文件,然后使用OpenAsTextStream获取一个流进行读取。为了处理ASCII和Unicode文件,我一直使用TriStateUseDefault-2作为第二个参数。但我遇到了一个文件的情况,它肯定是ASCII,没有特殊的2字节头来开始文件,没有BOM表。但该文件似乎被解释为Unicode。当OpenAsTextStream方法被传递到TriStateUseDefault时,它是否会对文件内容进行更有趣的检查,以尝试猜测文件是否为Unicode 例如,问题文件有几行文本,其中一行包含如下内容: ... ^123^.... 并将该文件视为Unicode 当我将该行的文本更改为…^1234^。。。FSO将该文件视为ASCII 如果fso猜测编码,是否有任何方法可以避免这种边缘情况,即它猜测错误 另一个注意事项-此文件确实具有扩展ASCII字符,包括thorn字符ASCII 254 示例代码:Vb6 使用TriStateUseDefault时,如何确定文件编码,vb6,filesystemobject,Vb6,Filesystemobject,我有一些代码,它使用fileSystemObject打开一个文件,然后使用OpenAsTextStream获取一个流进行读取。为了处理ASCII和Unicode文件,我一直使用TriStateUseDefault-2作为第二个参数。但我遇到了一个文件的情况,它肯定是ASCII,没有特殊的2字节头来开始文件,没有BOM表。但该文件似乎被解释为Unicode。当OpenAsTextStream方法被传递到TriStateUseDefault时,它是否会对文件内容进行更有趣的检查,以尝试猜测文件是否为
TriStateUseDefault = -2
Set fso = CreateObject("Scripting.FileSystemObject")
set objFIL = FSO.GetFile("myfile.txt")
Set TS =objFIL.OpenAsTextStream(ForReading, TristateUseDefault)
strLine = TS.ReadLine
FSO可能正在使用API函数ISTEXTINCODE。有趣的参数是lpiResult on input-它显著地改变了行为。非常有趣-这很有意义,并且ISTEXTINCODE引用非常有用。谢谢