千家信息网

VBS如何实现GB2312,UTF-8,Unicode,BIG5编码转换工具

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关VBS如何实现GB2312,UTF-8,Unicode,BIG5编码转换工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码:代码
千家信息网最后更新 2025年01月19日VBS如何实现GB2312,UTF-8,Unicode,BIG5编码转换工具

这篇文章将为大家详细讲解有关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.ArgumentsSet fso=CreateObject("Scripting.FileSystemObject")if objArgs.Count=0 ThenMsgBox Show &vbCrLf&vbCrLf& Usage1 &vbCrLf& Usage2 &vbCrLf& Usage3, vbInformation, Usage4Wscript.Quitend ifif not objArgs.Count < 3 ThenOptions="/y"ignoring = StrComp(objArgs(2), Options, vbTextCompare)if ignoring = 0 ThenSourcefile=objArgs(0)Getfile=objArgs(1)elseMsgBox "文件数量或参数太多,拖拽批量处理请用 ANSI2Unicode.vbs ", vbInformation, "程序意外终止"Wscript.Quitend ifelseif not objArgs.Count < 2 ThenSourcefile=objArgs(0)Getfile=objArgs(1)if fso.FileExists(objArgs(1)) thenChoice = MsgBox ("待处理文件""+Sourcefile+"" ==> 目标文件""+Getfile+"" "&vbCrLf&"目标文件已存在,是否改写现有文件?""+objArgs(1)+"" ",vbQuestion+vbYesNo,"是否改写")if Choice = vbYes ThenGetfile=objArgs(1)elseWscript.Quitend ifend ifelseSourcefile=objArgs(0)Getfile=objArgs(0)end ifend ifCall CheckCode (Sourcefile)Call WriteToFile(Getfile, ReadFile(Sourcefile, aCode), bCode)Wscript.QuitFunction ReadFile (Sourcefile, CharSet)Dim StrSet stm = CreateObject("Adodb.Stream")stm.Type = 2stm.mode = 3stm.charset = CharSetstm.Openstm.loadfromfile SourcefileStr = stm.readtextstm.CloseSet stm = NothingReadFile = StrEnd FunctionFunction WriteToFile (Getfile, Str, CharSet)Set stm = CreateObject("Adodb.Stream")stm.Type = 2stm.mode = 3stm.charset = CharSetstm.Openstm.WriteText Strstm.SaveToFile Getfile,2stm.flushstm.CloseSet stm = NothingEnd FunctionFunction CheckCode (Sourcefile)Dim slzset slz = CreateObject("Adodb.Stream")slz.Type = 1slz.Mode = 3slz.Openslz.Position = 0slz.Loadfromfile SourcefileBin=slz.read(2)if AscB(MidB(Bin,1,1))=&HEF and AscB(MidB(Bin,2,1))=&HBB ThenCodes="UTF-8"elseif AscB(MidB(Bin,1,1))=&HFF and AscB(MidB(Bin,2,1))=&HFE ThenCodes="Unicode"elseCodes="GB2312"end ifif not aCode = Codes ThenMsgBox "待处理文件 ""&Sourcefile&"""&vbCrLf&"该文件原始编码不是"&aCode&",本脚本仅支持"&aCode&"到"&bCode&"的转换! ",vbInformation,"错误终止"WScript.Quitend ifslz.Closeset slz = NothingEnd Function

关于"VBS如何实现GB2312,UTF-8,Unicode,BIG5编码转换工具"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0