调用JS_CompileScript,传入中文字符串,js中显示乱码

问题如下:编辑器版本3.2

当调用 Cocos2dxJavascriptJavaBridge.evalString(“cc.log(“成功”)”);,其中需要传入中文字符串, JNI中的乱码问题已经解决。

查看代码 : Cocos2dxJavascriptJavaBridge.evalString中的代码
const char *_value = env->GetStringUTFChars(value, NULL);
LOGD(“value:%s”, _value); //可以正常输出中文
ScriptingCore::getInstance()->evalString(_value,NULL); //调用这个方法之后就会出现乱码。

跟踪代码进入 ScriptingCore 这个类的evalString方法中,这里面也可以正常显示中文,但当调用JS_CompileScript和JS_ExecuteScript方法之后,在JS中就输出乱码了。

谁遇到过这个问题麻烦帮忙解决下,谢谢了!

JNI 都有中文乱码的问题,要自己处理转码,引擎里没有处理, 这个JS_CompileScript需要转成char16_t宽字符, 文档:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/JSAPI_Reference/JS_CompileScript

其实最好的办法就是不要用中文,为什么一定要传递中文呢?

非常感谢! JNI的中午乱码问题我已经解决了。 我在去看下char16_t宽字符的处理。

我现在在做排行榜的功能,用到第三方登陆,第三方登陆的昵称是有中文的,所以必须要处理中文的了。

怎么解决的,帮忙一下,也遇到了同意的问题

怎么解决的 ???

java的解决完了 ,oc 的乱码怎么解决

能说下怎么解决的吗,我也遇到这种问题了

楼主怎么解决乱码问题的,能说下吗,各位你们怎么调用evalString 方法怎么传多个参数,我原以为生成json对象然后转成字符串应该可以传递的,但是会报错 有人碰到吗?