VBS實(shí)現(xiàn)GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具
來源:易賢網(wǎng) 閱讀:3120 次 日期:2016-07-07 16:40:55
溫馨提示:易賢網(wǎng)小編為您整理了“VBS實(shí)現(xiàn)GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具”,方便廣大網(wǎng)友查閱!

VBS寫的GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具,轉(zhuǎn)換工具下載: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 經(jīng)過6次處理 "處理后.txt" 和 "處理前.txt" 仍舊是相同編碼

如果不知道文件的原始編碼,請(qǐng)使用

下面里面里面具體代碼:

代碼如下:

' *==============================================================================*

' * 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 = "語法1:GB2Ue.vbs [驅(qū)動(dòng)器][目錄][文件名] (直接替換原文件模式)"

Usage2 = "語法2:GB2Ue.vbs [驅(qū)動(dòng)器][目錄][文件名] [目標(biāo)驅(qū)動(dòng)器][目錄][新名稱] /Y"

Usage3 = " 如果目標(biāo)新文件已存在,使用/Y參數(shù)后將直接替換而不提示是否改寫! "

Usage4 = "命令行編碼轉(zhuǎn)換工具 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 "文件數(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àn)有文件?“"+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&"的轉(zhuǎn)換! ",vbInformation,"錯(cuò)誤終止"

WScript.Quit

end if

slz.Close

set slz = Nothing

End Function

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:VBS實(shí)現(xiàn)GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)