1

Тема: JS: символы русского алфавита из WScript.StdIn.ReadLine()

Подскажите, есть ли возможность увидеть в файле "rezult.txt" русские буквы? Скрипт запускается на сервере сценариев cscript.exe

WScript.StdOut.WriteLine("Введите имя пользователя");
var Usr = WScript.StdIn.ReadLine();
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var TextStream = fso.OpenTextFile("rezult.txt", 8, true, -1);							// параметры "0" и "-2" также пробовал
TextStream.WriteLine("ФИО пользователя: " + Usr);

2 (изменено: Spy00000, 2017-11-14 21:07:57)

Re: JS: символы русского алфавита из WScript.StdIn.ReadLine()

Первый вариант - запускать из батника примерно такого вида (условно примем, что js скрипт сохранён в файл 1.js):


chcp 1251
cscript 1.js

и дальше как вариант развития - собирать это в один файл bat + js.


Второй вариант (код sDOS2Win взят из WSH: пример конвертации текста из кодировки в кодировку):


WScript.StdOut.WriteLine("Введите имя пользователя");
var Usr = WScript.StdIn.ReadLine();
Usr = sDOS2Win( Usr, false );
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var TextStream = fso.OpenTextFile("rezult.txt", 8, true, -1);                                                   // параметры "0" и "-2" также пробовал
TextStream.WriteLine("ФИО пользователя: " + Usr);


function sDOS2Win(sText, bInsideOut) {
  var aCharsets = ["windows-1251", "cp866"];
  sText += "";
  bInsideOut = bInsideOut ? 1 : 0;
  with (new ActiveXObject("ADODB.Stream")) { //http://www.w3schools.com/ado/ado_ref_stream.asp
    type = 2; //Binary 1, Text 2 (default) 
    mode = 3; //Permissions have not been set 0,  Read-only 1,  Write-only 2,  Read-write 3,  
    //Prevent other read 4,  Prevent other write 8,  Prevent other open 12,  Allow others all 16
    charset = aCharsets[bInsideOut];
    open();
    writeText(sText);
    position = 0;
    charset = aCharsets[1 - bInsideOut];
    return readText();
  }
}

3

Re: JS: символы русского алфавита из WScript.StdIn.ReadLine()

Spy00000
Первый пример не вариант, не видно что вводишь на русском, а второй отлично работает! Спасибо большое

4

Re: JS: символы русского алфавита из WScript.StdIn.ReadLine()

За первый вариант прошу прощения - я его из под Far-а запускал, там он всё на русском и на экран выводил и в файл писал. Из консоли я его не проверил, там всё действительно плохо.