原生端的调用问题

原生端方面。oc调用js传递参数。中文会出现乱码。要怎么解决。

你是怎么调用的?能否贴一下代码?

贴代码不要用图片啊。。。。这样我怎么复制粘贴你的代码去测试啊。。。 阅读也不方便。

试试把 utf8 转为 utf16

NSString *json2 = [NSString stringWithFormat:@"{\"city\":\"%@\", \"address\":\"%@\", \"latitude\":\"%@\", \"longitude\":\"%@\"}",city,address,latitude,longitude];
                 json2=[json2 stringByReplacingOccurrencesOfString:@"\"" withString:@"'"];
                
                 NSLog(@"string1111: %@",json2);
                 
                //NSString *str2 = [json2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
                const char* data = [json2 UTF8String];
                 //NSLog(@"##### %@", str2);
                

                 const char* lis = [m_listener UTF8String];
                 cocos2d::log("----%s",data);
                 std::string jsCallStr = cocos2d::StringUtils::format("cc.eventManager.dispatchCustomEvent(\"%s\", {a:\"%s\"});", lis, data);
                 cocos2d::log("===%s",jsCallStr.c_str());
                 cocos2d::Director::getInstance()->getScheduler()->performFunctionInCocosThread([=](){
                     NSLog(@"xxxxxxxx");
                     jsval ret;
                     ScriptingCore::getInstance()->evalString(jsCallStr.c_str(), &ret);
                 });

是c++ utf8转utf16吗

是,转换成 utf16 再传给 JS

要怎么转呢?网上看的一些都是win环境下的。xcode下的呢?