java使用unicode过滤emoji表情

最近搞个微信公众号的项目,如果微信用户名有表情符号的,那么在我们的系统里面就会保存不了。最初的解决方案是把数据库的utf8格式改为utf8mb4。这样就能兼容保存emoji表情符号,后面又发现,保存的表情符号有的能正常显示有的不可以,后来经过几次验证才发现,用IOS自带输入法输入的表情,跟安卓输入法输入的表情编码不一样,导致有些符号不能显示,而且有些IOS有的符号安卓机子还没有。如果要统一就必须要进行转码,这样工作量比较大,不能在短时间内解决,最好的方案就是过滤,把emoji表情符号替换成□。于是就去查了unicode码表,做了一个过滤的工具类,使用正则表达式过滤表情字符

public final static String unicodeReg= "["+
				"\u4E00-\u9FBF"+//:CJK 统一表意符号 (CJK Unified Ideographs)
				"\u4DC0-\u4DFF"+//:易经六十四卦符号 (Yijing Hexagrams Symbols)
				"\u0000-\u007F"+//:C0控制符及基本拉丁文 (C0 Control and Basic Latin)
				"\u0080-\u00FF"+//:C1控制符及拉丁:补充-1 (C1 Control and Latin 1 Supplement)
				"\u0100-\u017F"+//:拉丁文扩展-A (Latin Extended-A)
				"\u0180-\u024F"+//:拉丁文扩展-B (Latin Extended-B)
				"\u0250-\u02AF"+//:国际音标扩展 (IPA Extensions)
				"\u02B0-\u02FF"+//:空白修饰字母 (Spacing Modifiers)
				"\u0300-\u036F"+//:结合用读音符号 (Combining Diacritics Marks)
				"\u0370-\u03FF"+//:希腊文及科普特文 (Greek and Coptic)
				"\u0400-\u04FF"+//:西里尔字母 (Cyrillic)
				"\u0500-\u052F"+//:西里尔字母补充 (Cyrillic Supplement)
				"\u0530-\u058F"+//:亚美尼亚语 (Armenian)
				"\u0590-\u05FF"+//:希伯来文 (Hebrew)
				"\u0600-\u06FF"+//:阿拉伯文 (Arabic)
				"\u0700-\u074F"+//:叙利亚文 (Syriac)
				"\u0750-\u077F"+//:阿拉伯文补充 (Arabic Supplement)
				"\u0780-\u07BF"+//:马尔代夫语 (Thaana)
				//"\u07C0-\u077F"+//:西非书面语言 (N'Ko)
				"\u0800-\u085F"+//:阿维斯塔语及巴列维语 (Avestan and Pahlavi)
				"\u0860-\u087F"+//:Mandaic
				"\u0880-\u08AF"+//:撒马利亚语 (Samaritan)
				"\u0900-\u097F"+//:天城文书 (Devanagari)
				"\u0980-\u09FF"+//:孟加拉语 (Bengali)
				"\u0A00-\u0A7F"+//:锡克教文 (Gurmukhi)
				"\u0A80-\u0AFF"+//:古吉拉特文 (Gujarati)
				"\u0B00-\u0B7F"+//:奥里亚文 (Oriya)
				"\u0B80-\u0BFF"+//:泰米尔文 (Tamil)
				"\u0C00-\u0C7F"+//:泰卢固文 (Telugu)
				"\u0C80-\u0CFF"+//:卡纳达文 (Kannada)
				"\u0D00-\u0D7F"+//:德拉维族语 (Malayalam)
				"\u0D80-\u0DFF"+//:僧伽罗语 (Sinhala)
				"\u0E00-\u0E7F"+//:泰文 (Thai)
				"\u0E80-\u0EFF"+//:老挝文 (Lao)
				"\u0F00-\u0FFF"+//:藏
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值