CNode

V8 中文乱码问题,求大神指教!!!!

Qqianqing发布于13 年前最后回复10 年前8 回复7636 浏览0 收藏

String::Value name(args[5]);

MessageBox(NULL, (const char*)*name,"乘客名字",MB_OK);

其中args[5]是一个中文字符,但是MessageBox输出的时候成乱码,不知道什么原因,求高手指教!!!!

查看回复

回复 (8)

W
wenbob#1·13 年前
引用 wenbobutf 8 please

@qianqing 不是。如果你用其他语言写了编译好的native模块,然后在js里使用模块,就得注意字符串编码格式。比如,native里的gbk字符串传给了js,得在js里 iconv.decode(buffer, 'GBK') 反过来也是,如果你要传递字符串给你的native模块,也得先把buffer转换成需要的编码格式

Q
qianqing#2·13 年前
引用 wenbobutf 8 please

@wenbob

V8 code

Handle title(const Arguments& args) { HandleScope scope; return scope.Close(String::New("我的标题")); }

JS code

var title = iconv.decode(addons.title(), 'GBK'); console.log('C/C++ addons.title() =', title);

我的代码已经改成这样了,js文件也是utf8的,但是打印出来还是乱码,是哪里做错了吗?

A
a624535537#3·10 年前

也遇到这问题了....求助....

M
magicdawn#4·10 年前
引用 a624535537也遇到这问题了....求助....

@a624535537 String::NewFromUtf8 貌似有这方法

A
a624535537#6·10 年前
引用 magicdawnhttps://v8docs.nodesource.com/node 5.0/d2/db3/classv8 1 1 string.html a9d50737bcffa24e9047dd064d...

@magicdawn 搞了半天终于可以了....VS保存设置的GB2312....谢谢了!!!

W
wenbob#7·13 年前

utf-8 please

Q
qianqing#8·13 年前
引用 wenbobutf 8 please

你值的是js文件格式设置成utf-8?

参与回复
登录后即可参与回复。登录