国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

vbs腳本實現批量轉換文件編碼

2019-10-26 18:06:36
字體:
來源:轉載
供稿:網友

最近需要使用SourceInsight查看分析在Linux系統下開發的項目代碼,我們知道Linux系統中文本文件默認編碼格式是UTF-8,而Windows中文系統中的默認編碼格式是Gb2312。系統內的編碼格式有所區別倒無傷大雅,關鍵的是SourceInsight竟不支持UTF-8,導致項目代碼內的中文注釋全部亂碼!

既然SourceInsight不支持UTF-8編碼的文件,那我們就得想辦法將UTF-8的代碼文件轉化為GB2312編碼的。首先想到的是到網上搜一下“批量編碼轉換工具”,結果下載后發現編碼轉換后的文件總是出現亂碼,可能是工具的bug吧。既然不能使用工具轉換,那就自己寫一個程序進行編碼轉換,但是細想一下覺得C++/java的編碼轉換程序寫起來又比較啰嗦,要是在Linux下寫一個shell腳本就能輕松搞定了。還好Windows下有vbs腳本可以幫助我們輕松達到這個目的。

復制代碼 代碼如下:

'-------------------------------------------------

'函數名稱:ReadFile

'作用:利用AdoDb.Stream對象來讀取各種格式的文本文件

'-------------------------------------------------

 

Function ReadFile(FileUrl, CharSet)

    Dim Str

    Set stm = CreateObject("Adodb.Stream")

    stm.Type = 2

    stm.mode = 3

    stm.charset = CharSet

    stm.Open

    stm.loadfromfile FileUrl

    Str = stm.readtext

    stm.Close

    Set stm = Nothing

    ReadFile = Str

End Function

我們使用ReadFile函數讀取文件,其中FileUrl指定文件的路徑,CharSet指定文件的原始編碼格式,使用adodb.stream對象讀取文件內容到Str。

復制代碼 代碼如下:

'-------------------------------------------------

'函數名稱:WriteToFile

'作用:利用AdoDb.Stream對象來寫入各種格式的文本文件

'-------------------------------------------------

 

Function WriteToFile (FileUrl, Str, CharSet)

    Set stm = CreateObject("Adodb.Stream")

    stm.Type = 2

    stm.mode = 3

    stm.charset = CharSet

    stm.Open

    stm.WriteText Str

    stm.SaveToFile FileUrl, 2

    stm.flush

    stm.Close

    Set stm = Nothing

End Function

然后使用WriteToFile將Str寫回原文件FileUrl,并設定新的編碼CharSet。

復制代碼 代碼如下:

'-------------------------------------------------

'函數名稱:ConvertFile

'作用:將一個文件進行編碼轉換

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 府谷县| 深州市| 长顺县| 南丹县| 贵港市| 通山县| 吉木乃县| 镇康县| 皮山县| 项城市| 师宗县| 江达县| 如皋市| 临猗县| 皋兰县| 大石桥市| 邯郸县| 绥阳县| 和平区| 南丰县| 民勤县| 瓦房店市| 东山县| 潮安县| 东乌| 仪征市| 昆山市| 娱乐| 石林| 恩平市| 钦州市| 浙江省| 邵东县| 石首市| 齐齐哈尔市| 旬邑县| 临潭县| 甘孜| 达拉特旗| 泰和县| 邵阳县|