经典ASP,VBScript上下文。FileSystemObject - 读取Unicode文件
很多文章,包括this Microsoft one,说你不能使用FileSystemObject读取Unicode文件。
我遇到过这个问题而回,所以切换到使用ADODB.Stream代替,每例的ReadText here,而不是使用FileSystemObject.OpenTextFile(它接受一个最后一个参数指示是否打开该文件作为unicode的,但实际上没有按没有工作)。
但是,当尝试读取UNC文件共享上的文件(与权限相关的问题)时,ADODB.Stream会导致一个痛苦的世界。因此,调查这个,我碰到了下面的方法与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文件?
谢谢。在这种情况下,读取为“unicode”的文件全部由类似的代码创建,该代码使用FSO.OpenTextFile(用于“unicode”的TriStateTrue)打开文件以写入文件,因此应该安全地使用FSO来读取它们所有。 ADODB.Stream在尝试从另一台机器上的文件共享中读取时会导致各种各样的hoo-haa,这就是为什么我要离开它的原因。 – AdaTheDev 2009-09-11 13:11:39