您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關VBS如何實現GB2312,UTF-8,Unicode,BIG5編碼轉換工具,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
具體代碼:
代碼如下:
' *==============================================================================* ' * CMD 命令行編碼轉換工具包括GB2312,UTF-8,Unicode,BIG5...支持拖拽、文件另保存為 * ' * CodeChange.vbs BY: yongfa365 ' * GB2Ue.vbs BY: fastslz ' *==============================================================================* aCode = "GB2312" bCode = "Unicode" Show = "本腳本僅支持"&aCode&"到"&bCode&"的轉換,請拖拽單個要轉換的文件到此文件上! " Usage1 = "語法1:GB2Ue.vbs [驅動器][目錄][文件名] (直接替換原文件模式)" Usage2 = "語法2:GB2Ue.vbs [驅動器][目錄][文件名] [目標驅動器][目錄][新名稱] /Y" Usage3 = " 如果目標新文件已存在,使用/Y參數后將直接替換而不提示是否改寫! " Usage4 = "命令行編碼轉換工具 BY: fastslz" Set objArgs=WScript.Arguments Set fso=CreateObject("Scripting.FileSystemObject") if objArgs.Count=0 Then MsgBox Show &vbCrLf&vbCrLf& Usage1 &vbCrLf& Usage2 &vbCrLf& Usage3, vbInformation, Usage4 Wscript.Quit end if if not objArgs.Count < 3 Then Options="/y" ignoring = StrComp(objArgs(2), Options, vbTextCompare) if ignoring = 0 Then Sourcefile=objArgs(0) Getfile=objArgs(1) else MsgBox "文件數量或參數太多,拖拽批量處理請用 ANSI2Unicode.vbs ", vbInformation, "程序意外終止" Wscript.Quit end if else if not objArgs.Count < 2 Then Sourcefile=objArgs(0) Getfile=objArgs(1) if fso.FileExists(objArgs(1)) then Choice = MsgBox ("待處理文件“"+Sourcefile+"” ==> 目標文件“"+Getfile+"” "&vbCrLf&"目標文件已存在,是否改寫現有文件?“"+objArgs(1)+"” ",vbQuestion+vbYesNo,"是否改寫") if Choice = vbYes Then Getfile=objArgs(1) else Wscript.Quit end if end if else Sourcefile=objArgs(0) Getfile=objArgs(0) end if end if Call CheckCode (Sourcefile) Call WriteToFile(Getfile, ReadFile(Sourcefile, aCode), bCode) Wscript.Quit Function ReadFile (Sourcefile, CharSet) Dim Str Set stm = CreateObject("Adodb.Stream") stm.Type = 2 stm.mode = 3 stm.charset = CharSet stm.Open stm.loadfromfile Sourcefile Str = stm.readtext stm.Close Set stm = Nothing ReadFile = Str End Function Function WriteToFile (Getfile, Str, CharSet) Set stm = CreateObject("Adodb.Stream") stm.Type = 2 stm.mode = 3 stm.charset = CharSet stm.Open stm.WriteText Str stm.SaveToFile Getfile,2 stm.flush stm.Close Set stm = Nothing End Function Function CheckCode (Sourcefile) Dim slz set slz = CreateObject("Adodb.Stream") slz.Type = 1 slz.Mode = 3 slz.Open slz.Position = 0 slz.Loadfromfile Sourcefile Bin=slz.read(2) if AscB(MidB(Bin,1,1))=&HEF and AscB(MidB(Bin,2,1))=&HBB Then Codes="UTF-8" elseif AscB(MidB(Bin,1,1))=&HFF and AscB(MidB(Bin,2,1))=&HFE Then Codes="Unicode" else Codes="GB2312" end if if not aCode = Codes Then MsgBox "待處理文件 “"&Sourcefile&"”"&vbCrLf&"該文件原始編碼不是"&aCode&",本腳本僅支持"&aCode&"到"&bCode&"的轉換! ",vbInformation,"錯誤終止" WScript.Quit end if slz.Close set slz = Nothing End Function
關于“VBS如何實現GB2312,UTF-8,Unicode,BIG5編碼轉換工具”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。