前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于“网游屏蔽字简繁混合”的解决方案

关于“网游屏蔽字简繁混合”的解决方案

作者头像
帘卷西风
发布2018-08-03 16:14:27
4750
发布2018-08-03 16:14:27
举报

项目最近开始向版署申请版号,反馈的一项修改内容,是聊天屏蔽字库简繁混合未能屏蔽。比如“abc”和“ABC”都能屏蔽,但是类似"AbC”,“aBC”这些不能屏蔽(大小写代替简繁体)。

     上网查了下资料,最后的解决方案是,把发送字符全部转为简体,然后在跟屏蔽字库的字符进行比较。

      代码实现如下,接口是给lua使用:

代码语言:javascript
复制

static int luaA_simplify(lua_State *L)
{
	size_t l;
	std::wstring src = MByteToWChar(luaL_checklstring(L, 1, &l));
 
	WORD wLanguageID = MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED) ;
	LCID Locale = MAKELCID( wLanguageID, SORT_CHINESE_PRC ) ;//0x0804
 
	int len = LCMapStringW( Locale, LCMAP_SIMPLIFIED_CHINESE, src.c_str(), -1, NULL, 0 );
	wchar_t* pszGbs = new wchar_t[ len ];
	LCMapStringW( Locale, LCMAP_SIMPLIFIED_CHINESE, src.c_str(), -1, pszGbs, len );
 
	std::string des = WCharToMByte(pszGbs);
	delete [] pszGbs;
 
	tolua_pushstring(L, des.c_str());
 
	return 1;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年08月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档