ClassicASP
File Encoding Conversion ansi to utf-8 vbscript
투명함이진실
2014. 7. 2. 14:09
FilesystemObject 로는 안되고, ADODB.Stream 을 이용해야 될듯
JScript
function ansiToUtf8(fileName) { var indir = "ansiin"; var outdir = "utf8out"; var ansi = WScript.CreateObject("Scripting.FileSystemObject"); var utf8 = WScript.CreateObject("ADODB.Stream"); utf8.Open(); utf8.Charset = "UTF-8"; utf8.WriteText(ansi.OpentextFile(indir+"\\"+fileName,1,false,false).ReadAll()); utf8.SaveToFile(outdir+"\\"+fileName, 2 /*adSaveCreateOverWrite*/); utf8.Close(); }
VBScript
Const adTypeBinary = 1 Const adTypeText = 2 Const bOverwrite = True Const bAsASCII = False Dim oFS : Set oFS = CreateObject( "Scripting.FileSystemObject" ) Dim sTxt : sTxt = "aäoöuü" Dim sFiNa : sFiNa = ".\convcs" Dim oFrom : Set oFrom = CreateObject( "ADODB.Stream" ) Dim sFrom : sFrom = "Windows-1252" Dim sFFSpec : sFFSpec = oFS.GetAbsolutePathName( sFiNa & "-cp1252.txt" ) Dim oTo : Set oTo = CreateObject( "ADODB.Stream" ) Dim sTo : sTo = "utf-8" Dim sTFSpec : sTFSpec = oFS.GetAbsolutePathName( sFiNa & "-utf8.txt" ) If oFS.FileExists( sTFSpec ) Then oFS.DeleteFile sTFSpec oFS.CreateTextFile( sFFSpec, bOverwrite, bAsASCII ).WriteLine sTxt oFrom.Type = adTypeText oFrom.Charset = sFrom oFrom.Open oFrom.LoadFromFile sFFSpec WScript.Echo oFrom.Size & " Bytes in " & sFFSpec oTo.Type = adTypeText oTo.Charset = sTo oTo.Open oTo.WriteText oFrom.ReadText WScript.Echo oTo.Size & " Bytes in " & sTFSpec oTo.SaveToFile sTFSpec oFrom.Close oTo.Close