Classic ASP, VBScript环境。
许多文章,包括这篇来自微软的文章,都说你不能使用FileSystemObject读取Unicode文件。
我遇到过这个问题,所以转而使用ADODB.Stream,根据这里的ReadText示例,而不是使用FileSystemObject.OpenTextFile(后者虽然接受一个最后参数指示是否将文件作为Unicode打开,但实际上无效)。
然而,在试图在UNC文件共享上读取文件时,ADODB.Stream会导致一系列问题(涉及权限问题)。因此,我研究了以下方法,既能够使用Unicode文件,又能够跨UNC文件共享工作:
dim fso, file, stream
set fso = Server.CreateObject("Scripting.FileSystemObject")
set file = fso.GetFile("\\SomeServer\Somefile.txt")
set stream = file.OpenAsTextStream(ForReading,-1) '-1 = unicode
我使用FSO读取Unicode文件时没有出现任何明显的问题,所以我对所有参考资料——包括微软——声称不能使用FSO读取Unicode文件感到困惑。
有其他人使用过这种方法读取Unicode文件吗?我有没有忽略掉什么隐藏的陷阱,或者你真的可以使用FSO读取Unicode文件?