1.node.js 默认支持编码方式为utf-8,代码写好后,需转换为utf-8编码方式才能正确显示中文。
2.如果编码方式不是utf-8,在写c addons过程中会出现加载模块问题。
3.v8返回的字符串默认也是utf-8编码,为了支持中文,首先要将字符串转化为utf-8编码。
常用的转化:
char* gbktoutf8(const char* strgbk)
{
int len=multibytetowidechar(cp_acp, 0, (lpcch)strgbk, -1, null,0);
unsigned short * wszutf8 = new unsigned short[len 1];
memset(wszutf8, 0, len * 2 2);
multibytetowidechar(cp_acp, 0, (lpcch)strgbk, -1, (lpwstr)wszutf8, len);
len = widechartomultibyte(cp_utf8, 0, (lpcwstr)wszutf8, -1, null, 0, null, null);
char *szutf8=new char[len 1];
memset(szutf8, 0, len 1);
widechartomultibyte (cp_utf8, 0, (lpcwstr)wszutf8, -1, (lpstr)szutf8, len, null,null);
return szutf8;
}
handlescope scope;
std::string ss = "支持中文";
return scope.close(string::new(gbktoutf8(ss.c_str())));
此时返回将支持中文了。
阅读(4616) | 评论(0) | 转发(1) |