vbs 讀unicode 編碼格式的文件


使用VBS 寫了一個函數來讀取一個txt文件,函數如下:

Dim fso,hf
Function readProgFile(byval progFileName)
        Dim progStrLine
        progStrLine = ""
          
         Set fso = CreateObject("Scripting.FileSystemObject")
         Set hf = fso.OpenTextFile(progFileName)
    
    
          Do Until hf.atendofstream 
             progStrLine = progStrLine+ hf.readline+ vbCrLf
        Loop

        hf.close
        readProgFile = progStrLine
    
End Function

其中參數progFileName 是txt 文件的文件名;txt是unicode 編碼格式,里面有中文。用該函數讀取的txt 里的內容中文部分都是亂碼;

最后發現這是函數OpenTextFile 的參數設置出了問題。

OpenTextFile 函數如下:

object.OpenTextFile(filename[, iomode[, create[, format]]])

參數

object

必選項。應為 FileSystemObject 對象的名稱。

filename

必選項。字符串表達式,指明要打開的文件名稱。

iomode

可選項。輸入/輸出模式,是下列三個常數之一:ForReading,ForWriting,或 ForAppending。

 

iomode 參數可為下列設置之一:

create

可選項。Boolean 值,指出當指定的 filename 不存在時是否能夠創建新文件。允許創建新文件時為 True,否則為False。默認值為 False

format

可選項。三個 Tristate 值之一,指出以何種格式打開文件。若忽略此參數,則文件以 ASCII 格式打開。

 所以openText 里面的參數format 應該選擇使用unicode 格式打開,修改為如下:

 Set hf = fso.OpenTextFile(progFileName,1,0,-1)'read unicode file

中文讀取正確了,問題解決!

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM