Klassischer ASP-, VBScript-Kontext.
Eine Vielzahl von Artikeln, darunter diese Microsoft-Version , sagen Sie kann nicht FileSystemObject verwenden, um Unicode-Dateien zu lesen.
Ich bin vor einiger Zeit auf dieses Problem gestoßen und habe daher stattdessen ADODB.Stream verwendet, wie im ReadText-Beispiel beschrieben これ anstelle von FileSystemObject.OpenTextFile (das zwar einen letzten Parameter akzeptiert, der angibt, ob die Datei als Unicode geöffnet werden soll, aber eigentlich nicht funktioniert).
Allerdings führt ADODB.Stream zu einer Welt der Schmerzen, wenn man versucht, eine Datei auf einem UNC-Fileshare zu lesen (Problem mit den Berechtigungen). Bei der Untersuchung dieses Problems bin ich über den folgenden Ansatz gestolpert, der a) mit Unicode-Dateien und b) über UNC-Fileshares funktioniert:
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
Dies ist die Verwendung des BFS, um eine Unicode-Datei ohne offensichtliche Probleme zu lesen, so dass ich verwirrt bin, wie alle Verweise, einschließlich MS, sagen Sie können nicht die BFS verwenden, um Unicode-Dateien zu lesen.
Hat schon jemand diesen Ansatz zum Lesen von Unicode-Dateien verwendet? Gibt es irgendwelche versteckten Probleme, die ich übersehe, oder kann man tatsächlich Unicode-Dateien mit FSO lesen?