Задача: открыть файл в кодировке UTF-8 и найти в нем требуемое слово.
Предыстория: оказывается, объект FileSystemObject не поддерживает вышеназванную кодировку в принципе.
Еще одно интересное открытие: текстовые строки, даже хранящиеся в скрипте в кодировке 1251, в памяти при выполнении хранятся в unicode!  

Выполняя 
var s="Мотя";
WScript.echo(escape(s));
получим "%u041C%u043E%u0442%u044F"
А 
вот такие скрипты, найденные в сети, работают с кириллицей криво.
пришлось мастерить побуквенный транскодер. Вот что получилось:
function transcode(s){
 var d="";
 d=escape(s);
 d=d.replace(/%u0420/g,"%u0420%A0");  //Р в первую очередь!
 d=d.replace(/%u0421/g,"%u0420%u040E");  //С тоже!
 d=d.replace(/%u0401/g,"%u0420%u0403");  // Ё
 d=d.replace(/%u0410/g,"%u0420%u0452"); //А
 d=d.replace(/%u0411/g,"%u0420%u2018"); //Б
 d=d.replace(/%u0412/g,"%u0420%u2019"); //В
 d=d.replace(/%u0413/g,"%u0420%u201C"); //Г
 d=d.replace(/%u0414/g,"%u0420%u201D"); //Д
 d=d.replace(/%u0415/g,"%u0420%u2022"); //Е
 d=d.replace(/%u0416/g,"%u0420%u2013"); //Ж
 d=d.replace(/%u0417/g,"%u0420%u2014"); //З
 d=d.replace(/%u0418/g,"%u0420%98");    //И
 d=d.replace(/%u0419/g,"%u0420%u2122");  //Й
 d=d.replace(/%u041A/g,"%u0420%u0459");  //К
 d=d.replace(/%u041B/g,"%u0420%u203A");  //Л
 d=d.replace(/%u041C/g,"%u0420%u045A");  //М
 d=d.replace(/%u041D/g,"%u0420%u045C");  //Н
 d=d.replace(/%u041E/g,"%u0420%u045B");  //О
 d=d.replace(/%u041F/g,"%u0420%u045F");  //П
 d=d.replace(/%u0422/g,"%u0420%u045E");  //Т
 d=d.replace(/%u0423/g,"%u0420%u0408");  //У
 d=d.replace(/%u0424/g,"%u0420%A4");  //Ф
 d=d.replace(/%u0425/g,"%u0420%u0490");  //Х
 d=d.replace(/%u0426/g,"%u0420%A6");  //Ц
 d=d.replace(/%u0427/g,"%u0420%A7");  //Ч
 d=d.replace(/%u0428/g,"%u0420%u0401");  //Ш
 d=d.replace(/%u0429/g,"%u0420%A9");  //Щ
 d=d.replace(/%u042A/g,"%u0420%u0404");  //Ъ
 d=d.replace(/%u042B/g,"%u0420%AB");  //Ы
 d=d.replace(/%u042C/g,"%u0420%AC");  //Ъ
 d=d.replace(/%u042D/g,"%u0420%AD");  //Э
 d=d.replace(/%u042E/g,"%u0420%AE");  //Ю
 d=d.replace(/%u042F/g,"%u0420%u0407");  //Я
 d=d.replace(/%u0430/g,"%u0420%B0"); // а
 d=d.replace(/%u0431/g,"%u0420%B1"); // б
 d=d.replace(/%u0432/g,"%u0420%u0406"); // в
 d=d.replace(/%u0433/g,"%u0420%u0456"); // г
 d=d.replace(/%u0434/g,"%u0420%u0491"); // д
 d=d.replace(/%u0435/g,"%u0420%B5"); // е
 d=d.replace(/%u0436/g,"%u0420%B6"); // ж
 d=d.replace(/%u0437/g,"%u0420%B7"); // з
 d=d.replace(/%u0437/g,"%u0420%u0451"); // и
 d=d.replace(/%u0439/g,"%u0420%u2116"); // й
 d=d.replace(/%u043A/g,"%u0420%u0454"); // к
 d=d.replace(/%u043B/g,"%u0420%BB"); // л
 d=d.replace(/%u043C/g,"%u0420%u0458"); // м
 d=d.replace(/%u043D/g,"%u0420%u0405");  // н
 d=d.replace(/%u043E/g,"%u0420%u0455");  // о
 d=d.replace(/%u043F/g,"%u0420%u0457");  // п
 d=d.replace(/%u0440/g,"%u0421%u0402");  // р
 d=d.replace(/%u0441/g,"%u0421%u0403");  // с
 d=d.replace(/%u0442/g,"%u0421%u201A");  // т
 d=d.replace(/%u0443/g,"%u0421%u0453");  // у
 d=d.replace(/%u0444/g,"%u0421%u201E");  // ф
 d=d.replace(/%u0445/g,"%u0421%u2026");  // х
 d=d.replace(/%u0446/g,"%u0421%u2020");  // ц
 d=d.replace(/%u0447/g,"%u0421%u2021");  // ч
 d=d.replace(/%u0448/g,"%u0421%u20AC");  // ш
 d=d.replace(/%u0449/g,"%u0421%u2030");  // щ
 d=d.replace(/%u044A/g,"%u0421%u0409");  // ъ
 d=d.replace(/%u044B/g,"%u0421%u2039");  // ы
 d=d.replace(/%u044C/g,"%u0421%u040A");  // ь
 d=d.replace(/%u044D/g,"%u0421%u040C");  // э
 d=d.replace(/%u044E/g,"%u0421%u040B");  // ю
 d=d.replace(/%u044F/g,"%u0421%u040F");  // я
 d=d.replace(/%u0451/g,"%u0421%u2018");  // ё
 return d;
}
Работает оно так:
var s="Мотя";
WScript.echo("unescaped s:",unescape(transcode(s)));
Если кто-нибудь предложит более изящное решение, буду благодарен! 
