VBS实现GB2312,UTF-8,Unicode,BIG5编码转换工具
演示
echo "ABCDE &!@#$ ^<>() %% abcde 测试!"> "处理前.txt"
GB2Ue.vbs "处理前.txt" "处理后.txt"
Ue2U8.vbs "处理后.txt"
U82GB.vbs "处理后.txt"
GB2U8.vbs "处理后.txt"
U82Ue.vbs "处理后.txt"
Ue2GB.vbs "处理后.txt"
@echo 经过6次处理 "处理后.txt" 和 "处理前.txt" 仍旧是相同编码
如果不知道文件的原始编码,请使用
下面里面里面具体代码:
打包下载地址
echo "ABCDE &!@#$ ^<>() %% abcde 测试!"> "处理前.txt"
GB2Ue.vbs "处理前.txt" "处理后.txt"
Ue2U8.vbs "处理后.txt"
U82GB.vbs "处理后.txt"
GB2U8.vbs "处理后.txt"
U82Ue.vbs "处理后.txt"
Ue2GB.vbs "处理后.txt"
@echo 经过6次处理 "处理后.txt" 和 "处理前.txt" 仍旧是相同编码
如果不知道文件的原始编码,请使用
下面里面里面具体代码:
代码如下:
' *==============================================================================* ' * 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
打包下载地址
相关推荐
cbqstars 2020-08-16
未来战士 2019-12-08
架构技术交流 2019-12-17
laohyx 2019-10-23
airfling 2019-11-25
luohui 2009-07-23
大尉 2009-01-05
weiloser 2008-08-16
wesai 2019-09-05
bentengdi 2008-06-23
SometimesYmc 2008-06-20
xsjezp 2008-06-20
HTMLzuo 2019-09-05
86560895 2007-03-27
diediexiaomi 2007-03-25
潇汀 2007-03-07
以梦为马不负韶华 2007-03-07