vbs实现unicode和ascii编码转换
一、CopyaUnicodeFiletoanANSIFile
WiToAnsi.vbs文件:
'UtilitytorewriteaUnicodetextfileasanANSItextfile 'ForusewithWindowsScriptingHost,CScript.exeorWScript.exe 'Copyright(c)1999,MicrosoftCorporation ' OptionExplicit
'FileSystemObject.CreateTextFileandFileSystemObject.OpenTextFile ConstOpenAsASCII =0 ConstOpenAsUnicode=-1
'FileSystemObject.CreateTextFile ConstOverwriteIfExist=-1 ConstFailIfExist =0
'FileSystemObject.OpenTextFile ConstOpenAsDefault =-2 ConstCreateIfNotExist=-1 ConstFailIfNotExist =0 ConstForReading=1 ConstForWriting=2 ConstForAppending=8
DimargCount:argCount=Wscript.Arguments.Count IfargCount>0ThenIfInStr(1,Wscript.Arguments(0),"?",vbTextCompare)>0ThenargCount=0 If(argCount=0)Then Wscript.Echo"UtilitytocopyUnicodetextfiletoanANSItextfile."&_ vbNewLine&"The1stargumentistheUnicodetextfiletoread"&_ vbNewLine&"The2ndargumentistheANSItextfiletowrite"&_ vbNewLine&"Ifthe2ndargumentisomitted,theUnicodefilewillbereplaced" Wscript.Quit1 EndIf
DiminFile,outFile,inStream,outStream,inLine,FileSys,WshShell IfargCount>1Then outFile=Wscript.Arguments(1) inFile =Wscript.Arguments(0) Else outFile=Wscript.Arguments(0) inFile =outFile&".tmp" SetWshShell=Wscript.CreateObject("Wscript.Shell") WshShell.Run"cmd.exe/ccopy"&outFile&""&inFile,0,True EndIf
SetFileSys=CreateObject("Scripting.FileSystemObject") SetinStream =FileSys.OpenTextFile(inFile,ForReading,FailIfNotExist,OpenAsDefault) SetoutStream=FileSys.CreateTextFile(outFile,OverwriteIfExist,OpenAsASCII) Do inLine=inStream.ReadLine outStream.WriteLineinLine LoopUntilinStream.AtEndOfStream inStream.Close outStream.Close IfargCount=1ThenWshShell.Run"cmd.exe/cdel"&inFile,0