Я пытаюсь преобразовать массив байтов в строку в JavaScript. Но сначала я должен привести объект к байтовому массиву.
Вот пример:
function Main(obj)
{
//Obj is an object (in fact, it's a bytes array
var str = FromBytesToString(obj);
//str must be a string, computed from the obj
return str;
}
Кто-нибудь знает, как это сделать?
Заранее спасибо,
Гийом
РЕДАКТИРОВАТЬ: некоторые точности:
1) Я вызываю JavaScript в приложении Windows (C #) с этим фрагментом кода:
private string ExecuteScript(byte[] buffer)
{
//Load script (using StreamReader)
string script = LoadScript(@"C:\script.js");
//Parse script
ScriptEngine engine = new ScriptEngine("Jscript");
ParsedScript parsedScript = engine.Parse(script);
//Run script, calling "Main" method
return parsedScript.CallMethod("Main", buffer);
}
Этот код использует код ScriptEngine, найденный здесь . Использует Windows Script Engine
2) Javascript код
Вот код JavaScript:
function Main(bytearray)
{
//Transform the bytearray in string
str = StringFromBytes();
//Do some stuff (replace/etc)
//sent back the new string
return str;
}
Таким образом, проблема в том, что аргумент "bytearray" является байтовым массивом C #, а javascript знает его только как объект. Если я использую метод ниже:
function StringFromByte(array)
{
var b = array;
var s = "";
for (var i = 0; i < b.length; i++)
s += String.fromCharCode(b[i]);
return s;
}
Ошибка отображается в строке "s + = String.fromCharCode (b [i]); -> Ожидается число ...