演示
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 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 "文件数量或参数太多,拖拽批量处理请用 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
打包下载地址
您可能感兴趣的文章:- 将字符串转换成gb2312或者utf-8编码的参数(js版)
- php实现utf-8和GB2312编码相互转换函数代码
- UTF-8 GBK UTF8 GB2312 之间的区别和关系介绍
- PHP字符编码问题之GB2312 VS UTF-8解决方法
- PHP 解决utf-8和gb2312编码转换问题
- unicode utf-8 gb18030 gb2312 gbk各种编码对比
- ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明
- MSSQL转MYSQL,gb2312转utf-8无乱码解决方法
- PHP iconv 解决utf-8和gb2312编码转换问题
- ASP UTF-8页面乱码+GB2312转UTF-8 +生成UTF-8格式的文件(编码)
- 用VBS实现的批量gb2312转utf-8,支持拖动
- 用javascript实现gb2312转utf-8的脚本
- [转]ASP实现关键词获取(各搜索引擎,GB2312及UTF-8)
- UTF-8转GB2312函数
- utf-8编码转换成gb2312
- 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)
- GBK、UTF-8、Unicode文件编码互换工具集合
- ecshop 模板编码转换工具(gbk,utf8任意转换)