Chinaunix首页 | 论坛 | 博客
  • 博客访问: 330977
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1293
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-07 11:17
个人简介

爱运动,爱看书,爱生活!

文章分类

全部博文(73)

文章存档

2014年(7)

2013年(66)

分类: C/C++

2014-01-16 15:26:25

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())));
此时返回将支持中文了。
阅读(4757) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~