cocos2dx 3.3final 字符串中含有表情 无法用Dictionary存储到文件的bug

版本:cocos2dx 3.3final
测试系统:ios8.1.3 xcode6.2

问题描述:现在我们都知道,ios可以在文本中显示表情(好像叫emoji表情),我有一个字符串std::string str=“你好 这里有一个emoji表情”; 我用Label来显示它是可以正常显示的,表情也可以显示出来。。。问题来了,代码如下:

std::string str=“你好 这里有一个emoji表情”;

dic = __Dictionary::create();
dic->setObject(__String::create(str),“NICKNAME”);

dic->writeToFile(Path.c_str()); //就会在这里发生异常,我跟进去看了。发现在static void addObjectToNSDict(const std::string& key, const Value& value, NSMutableDictionary *dict)这个函数里面的:

if (value.getType() == Value::Type::STRING)
{
NSString *strElement = NSString stringWithCString:value.asString().c_str() encoding:NSUTF8StringEncoding];
setObject:strElement forKey:NSkey];
return;
}
这段代码会出问题,我下断点发现strElement得到的是nil,而value.asString().c_str()这个值就是 “你好 这里有一个emoji表情” 这个, 而不含表情的字符串得到的strElement不为nil,是正常的。

由此断定这里出问题了,原因是在文本字符串中加了表情 (至于怎么得到这个带表情的字符串,很简单,只需要弄一个输入框,然后输入的时候选择一个表情就ok了; 第二种方式是:把自己的iPhone名字更改下,改为带表情的名字,代码中获取到机器名 注意:如果ios原生键盘上没有表情输入功能,那么可以安装一个搜狗输入法,ios8是可以安装的)

希望引擎组可以解决这个问题!!!

存之前base64编码一下

你好,请问具体如何做呢。非常感谢