ASP cổ điển, ngữ cảnh VBScript.FileSystemObject - Đọc các tệp Unicode
Rất nhiều bài viết bao gồm this Microsoft one, giả sử bạn không thể sử dụng FileSystemObject để đọc tệp Unicode.
Tôi gặp phải vấn đề này một thời gian, do đó, chuyển sang sử dụng ADODB.Stream thay vì sử dụng here, thay vì sử dụng FileSystemObject.OpenTextFile (chấp nhận tham số cuối cùng cho biết có mở tệp dưới dạng unicode hay không) 't làm việc).
Tuy nhiên, ADODB.Stream dẫn đến một thế giới đau đớn khi cố đọc một tệp trên tệp UNC (vấn đề liên quan đến quyền). Vì vậy, điều tra này, tôi tình cờ phương pháp sau đây mà làm việc a) với các tập tin unicode, và b) trên UNC fileshares:
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
này được sử dụng FSO để đọc một file unicode mà không cần bất kỳ vấn đề rõ ràng, vì vậy tôi bị nhầm lẫn với tất cả các tham chiếu, bao gồm MS, nói rằng bạn không thể sử dụng FSO để đọc các tệp unicode.
Có ai khác đã sử dụng phương pháp này để đọc các tệp unicode không? Có bất kỳ gotchas ẩn tôi đang mất tích, hoặc có thể bạn thực sự thực sự đọc các tập tin unicode bằng cách sử dụng FSO?
Cảm ơn.Trong trường hợp này, các tệp được đọc là "unicode" đều được tạo bởi mã tương tự sử dụng FSO.OpenTextFile (với TriStateTrue cho "unicode") để mở tệp để ghi vào nó, vì vậy phải an toàn gắn bó với FSO để đọc chúng tất cả các. ADODB.Stream gây ra tất cả các loại hoo-haa khi cố gắng đọc từ một fileshare trên máy khác đó là lý do tại sao tôi di chuyển ra khỏi đó. – AdaTheDev