В моем коде С++ у меня есть:
Handle<ObjectTemplate> globalTemplate = ObjectTemplate::New();
globalTemplate->Set( String::New("print"), FunctionTemplate::New( printMessage ));
Handle<Context> context = Context::New( NULL, globalTemplate );
Функция printMessage определяется как:
Handle<Value> printMessage(const Arguments& args)
{
Locker locker;
HandleScope scope;
if( args.Length() )
{
String::Utf8Value message( args[0]->ToString() );
if( message.length() )
{
//Print the message to stdout
printf( "%s", *message );
bool newline = true;
if(args.Length() == 2)
{
newline = args[1]->ToBoolean()->BooleanValue();
}
if(newline) printf("\n");
return scope.Close( Boolean::New( true ) );
}
}
return Undefined();
}
когда я вызываю эту функцию из JavaScript:
print("Привет");
Я вижу "пїЅпїЅпїЅпїЅпїЅпїЅ" вместо строки.
Что было не так с этим кодом?