node.js 中文编码支持

4830阅读 0评论2014-01-16 ygfinsight
分类:C/C++

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())));
此时返回将支持中文了。
上一篇:程序中用到指针应该注意的问题
下一篇:c++隐式转化带来的问题