演示
echo "ABCDE !@#$ ^>() %% abcde 測(cè)試!"> "處理前.txt"
GB2Ue.vbs "處理前.txt" "處理后.txt"
Ue2U8.vbs "處理后.txt"
U82GB.vbs "處理后.txt"
GB2U8.vbs "處理后.txt"
U82Ue.vbs "處理后.txt"
Ue2GB.vbs "處理后.txt"
@echo 經(jīng)過(guò)6次處理 "處理后.txt" 和 "處理前.txt" 仍舊是相同編碼
如果不知道文件的原始編碼,請(qǐng)使用
下面里面里面具體代碼:
復(fù)制代碼 代碼如下:
' *==============================================================================*
' * CMD 命令行編碼轉(zhuǎn)換工具包括GB2312,UTF-8,Unicode,BIG5...支持拖拽、文件另保存為 *
' * CodeChange.vbs BY: yongfa365
' * GB2Ue.vbs BY: fastslz
' *==============================================================================*
aCode = "GB2312"
bCode = "Unicode"
Show = "本腳本僅支持"aCode"到"bCode"的轉(zhuǎn)換,請(qǐng)拖拽單個(gè)要轉(zhuǎn)換的文件到此文件上! "
Usage1 = "語(yǔ)法1:GB2Ue.vbs [驅(qū)動(dòng)器][目錄](méi)[文件名] (直接替換原文件模式)"
Usage2 = "語(yǔ)法2:GB2Ue.vbs [驅(qū)動(dòng)器][目錄](méi)[文件名] [目標(biāo)驅(qū)動(dòng)器][目錄](méi)[新名稱] /Y"
Usage3 = " 如果目標(biāo)新文件已存在,使用/Y參數(shù)后將直接替換而不提示是否改寫(xiě)! "
Usage4 = "命令行編碼轉(zhuǎn)換工具 BY: fastslz"
Set objArgs=WScript.Arguments
Set fso=CreateObject("Scripting.FileSystemObject")
if objArgs.Count=0 Then
MsgBox Show vbCrLfvbCrLf 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 "文件數(shù)量或參數(shù)太多,拖拽批量處理請(qǐng)用 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+"” ==> 目標(biāo)文件“"+Getfile+"” "vbCrLf"目標(biāo)文件已存在,是否改寫(xiě)現(xiàn)有文件?“"+objArgs(1)+"” ",vbQuestion+vbYesNo,"是否改寫(xiě)")
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"的轉(zhuǎn)換! ",vbInformation,"錯(cuò)誤終止"
WScript.Quit
end if
slz.Close
set slz = Nothing
End Function
打包下載地址
您可能感興趣的文章:- 將字符串轉(zhuǎn)換成gb2312或者utf-8編碼的參數(shù)(js版)
- php實(shí)現(xiàn)utf-8和GB2312編碼相互轉(zhuǎn)換函數(shù)代碼
- UTF-8 GBK UTF8 GB2312 之間的區(qū)別和關(guān)系介紹
- PHP字符編碼問(wèn)題之GB2312 VS UTF-8解決方法
- PHP 解決utf-8和gb2312編碼轉(zhuǎn)換問(wèn)題
- unicode utf-8 gb18030 gb2312 gbk各種編碼對(duì)比
- ASP中Utf-8與Gb2312編碼轉(zhuǎn)換亂碼問(wèn)題的解決方法 頁(yè)面編碼聲明
- MSSQL轉(zhuǎn)MYSQL,gb2312轉(zhuǎn)utf-8無(wú)亂碼解決方法
- PHP iconv 解決utf-8和gb2312編碼轉(zhuǎn)換問(wèn)題
- ASP UTF-8頁(yè)面亂碼+GB2312轉(zhuǎn)UTF-8 +生成UTF-8格式的文件(編碼)
- 用VBS實(shí)現(xiàn)的批量gb2312轉(zhuǎn)utf-8,支持拖動(dòng)
- 用javascript實(shí)現(xiàn)gb2312轉(zhuǎn)utf-8的腳本
- [轉(zhuǎn)]ASP實(shí)現(xiàn)關(guān)鍵詞獲取(各搜索引擎,GB2312及UTF-8)
- UTF-8轉(zhuǎn)GB2312函數(shù)
- utf-8編碼轉(zhuǎn)換成gb2312
- 將編碼從GB2312轉(zhuǎn)成UTF-8的方法匯總(從前臺(tái)、程序、數(shù)據(jù)庫(kù))
- GBK、UTF-8、Unicode文件編碼互換工具集合
- ecshop 模板編碼轉(zhuǎn)換工具(gbk,utf8任意轉(zhuǎn)換)