zoukankan      html  css  js  c++  java
  • 命令行GB2312,UTF8,Unicode,BIG5编码转换工具VBS版

    VBS写的GB2312,UTF-8,Unicode,BIG5编码转换工具,
    转换工具下载:GB2Ue.vbs (3.34 kb)

    演示
    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

  • 相关阅读:
    老师不能把你怎样,但外面的世界可以!
    又一大波笑到肾抽筋,笑出六块腹肌的段子
    又一大波笑到肾抽筋,笑出六块腹肌的段子
    又一大波笑到肾抽筋,笑出六块腹肌的段子
    最近流行的12个笑话,好笑又有道理
    最近流行的12个笑话,好笑又有道理
    最近流行的12个笑话,好笑又有道理
    2016最佳温情小说:雨还在下....
    2016最佳温情小说:雨还在下....
    2016最佳温情小说:雨还在下....
  • 原文地址:https://www.cnblogs.com/top5/p/1648401.html
Copyright © 2011-2022 走看看