Это можно сделать с помощью сценария Windows:
var indir = "in";
var outdir = "out";
function ansiToUtf8(fin, fout) {
var ansi = WScript.CreateObject("ADODB.Stream");
ansi.Open();
ansi.Charset = "x-ansi";
ansi.LoadFromFile(fin);
var utf8 = WScript.CreateObject("ADODB.Stream");
utf8.Open();
utf8.Charset = "UTF-8";
utf8.WriteText(ansi.ReadText());
utf8.SaveToFile(fout, 2 /*adSaveCreateOverWrite*/);
ansi.Close();
utf8.Close();
}
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var folder = fso.GetFolder(indir);
var fc = new Enumerator(folder.files);
for (; !fc.atEnd(); fc.moveNext()) {
var file = fc.item();
ansiToUtf8(indir+"\\"+file.name, outdir+"\\"+file.name);
}
Этот файл ansi2utf8.js можно запустить из командной строки следующим образом:
cscript /Nologo ansi2utf8.js
Сценарий ожидает в и out каталогах, но его можно изменить, чтобы сделать что-то более гибкое.
ansi2utf8\ansi2utf8.js
ansi2utf8\in
ansi2utf8\out
ansi2utf8\in\bar.txt
ansi2utf8\in\foo.txt