Скрипт для перекодировки текстовых файлов

Очень часто возникает необходимость перекодировать текстовый файл, например, перенаправленный вывод консольного приложения имеет кодировку CP866, что не совсем приемлемо для отправки по почте. Предлагаю воспользоваться следующим скриптом на языке JScript:

if (WScript.Arguments.Length < 1)
{
  WScript.Echo("Usage: oem2ansi.js filetoconvert.txt");
  WScript.Quit();
}
var Stream1 = WScript.CreateObject("ADODB.Stream");
var Stream2 = WScript.CreateObject("ADODB.Stream");
Stream1.Type = 2;
Stream1.Mode = 3;
Stream1.Charset = "cp866";
Stream1.Open();
Stream1.LoadFromFile(WScript.Arguments(0));
Stream2.Type = 2;
Stream2.Mode = 3;
Stream2.Charset = "windows-1251";
Stream2.Open();
Stream1.CopyTo(Stream2,-1);
Stream1.Close();
Stream2.SaveToFile(WScript.Arguments(0),2);
Stream2.Close();

ADODB.Stream поддерживает великое множество кодировок, в том числе UTF-8, с полным перечнем можно ознакомиться в реестре по следующему пути: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Charset.
Формат запуска скрипта: cscript.exe //nologo oem2ansi.js путь_к_файлу_для_перекодирования

Скрипт для перекодировки текстовых файлов: 2 комментария

  1. Павел Ватолин

    Спасибо огромное за идею.
    На основе вашего скрипта написал необходимую мне процедурку.
    Столкнулся с проблемой перекодировки текстовых файлов и поскольку опыта у меня маловато очень много времени провел в интернете в поисках решения, пока не натолкнулся на ваш скрипт.
    Еще раз спасибо.

Добавить комментарий