我想从 C++ 插件渲染 node.js 中的文件。我想应用一些文件处理并通过 node.js 将输出渲染到浏览器
这是我的 C++ 代码
std::ifstream in(filename, std::ios::binary);
in.seekg (0, in.end);
int length = in.tellg();
in.seekg (0, in.beg);
char * buffer = new char [length];
in.read (buffer,length);
in.close();
return buffer;
以下是为 node.js 添加绑定的 V8 代码,这里的缓冲区是上述 c++ 代码的输出。
Local<Function> cb = Local<Function>::Cast(args[1]);
const unsigned argc = 1;
Local<Value> argv[argc] = {Local<Value>::New(String::New(buffer))};
cb->Call(Context::GetCurrent()->Global(), argc, argv);
此代码适用于普通文本文件。读取具有 unicode 字符的文本文件时出现问题。例如,
原始文本文件
test start
Billél
last
在节点接收时,我会得到
test start
Bill�l
last
同样,在读取 jpg、png 文件时,输出文件与原始文件不同。请帮忙。