cocos2dx在C++层屏蔽emoji表情
2016-05-19 13:02
639 查看
在某些时候不希望用户输入emoji表情,所以需要将其过滤掉,屏蔽字符串中emoji表情方法如下:
string check_input_str(const string& str )
{
if (!str.compare(""))
{
return "";
}
unsigned unicode;
string ret;
for (int i = 0; i < str.size(); i++)
{
char codePoint = str[i];
if (codePoint&0x80)
{
switch ((unsigned)(codePoint & 0xf0))
{
case 0xf0:
//0x9f -> emoji
if ((unsigned)(str[i + 1] & 0x9f) != 0x9f)
{
for (int j = 0; j < 4; ++j)
{
ret.push_back(str[i + j]);
char a = str[i + j];
}
i+=3;
}
break;
case 0xe0:
for (int j = 0; j < 3; ++j)
{
ret.push_back(str[i + j]);
}
i+=2;
break;
case 0xc0:
for (int j = 0; j < 2; ++j)
{
ret.push_back(str[i + j]);
}
i+=1;
break;
default:
CCAssert(0, "");
break;
}
}
}
return ret;
}
这样,在ios和android中都能实现过滤字符串中的emoji表情了
string check_input_str(const string& str )
{
if (!str.compare(""))
{
return "";
}
unsigned unicode;
string ret;
for (int i = 0; i < str.size(); i++)
{
char codePoint = str[i];
if (codePoint&0x80)
{
switch ((unsigned)(codePoint & 0xf0))
{
case 0xf0:
//0x9f -> emoji
if ((unsigned)(str[i + 1] & 0x9f) != 0x9f)
{
for (int j = 0; j < 4; ++j)
{
ret.push_back(str[i + j]);
char a = str[i + j];
}
i+=3;
}
break;
case 0xe0:
for (int j = 0; j < 3; ++j)
{
ret.push_back(str[i + j]);
}
i+=2;
break;
case 0xc0:
for (int j = 0; j < 2; ++j)
{
ret.push_back(str[i + j]);
}
i+=1;
break;
default:
CCAssert(0, "");
break;
}
}
}
return ret;
}
这样,在ios和android中都能实现过滤字符串中的emoji表情了
相关文章推荐
- Cocos2d-x中背景音乐和音效使用实例
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
- Cocos2d-x UI开发之文本类使用实例
- Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
- Cocos2d-x UI开发之菜单类使用实例
- Cocos2d-x UI开发之CCControlButton控件类实例
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- Cocos2d-x UI开发之CCControlColourPicker控件类使用实例
- Cocos2d-x学习笔记之CCLayerColor层的使用实例
- Cocos2d-x Schedule定时器的使用实例
- Cocos2d-x中使用CCScrollView来实现关卡选择实例
- Cocos2d-x中CCEditBox文本输入框的使用实例
- cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍
- Cocos2d-x UI开发之CCControlSlider控件类使用实例
- Cocos2d-x学习笔记之开发环境搭建
- javascript制作游戏开发碰撞检测的封装代码
- Cocos2d-x学习笔记之Hello World!
- 使用C++进行Cocos2d-x游戏开发入门过程中的要点解析
- Cocos2d-x的内存管理总结