【发布时间】:2010-11-27 11:25:11
【问题描述】:
经典 ASP、VBScript 上下文。
很多文章,包括this Microsoft one,说你不能使用 FileSystemObject 来读取 Unicode 文件。
我不久前遇到了这个问题,因此根据 ReadText 示例 here 改用 ADODB.Stream,而不是使用 FileSystemObject.OpenTextFile(它接受指示是否以 unicode 格式打开文件的最终参数,但实际上不起作用)。
但是,当尝试读取 UNC 文件共享上的文件时,ADODB.Stream 会带来麻烦(与权限相关的问题)。因此,在对此进行调查时,我偶然发现了以下方法,它适用于 a) unicode 文件,b) 跨 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 文件而没有任何明显问题,所以我对所有参考资料(包括 MS)感到困惑,说您不能使用 FSO 读取 unicode 文件。
还有其他人使用这种方法来读取 unicode 文件吗?有没有我遗漏的隐藏问题,或者您真的可以使用 FSO 读取 unicode 文件吗?
【问题讨论】:
标签: scripting asp-classic vbscript