处理特殊符号

package com.luo.dtqjh.utils;import org.apache.commons.lang.StringUtils;public class EmojiFilter {public static boolean containsEmoji(String source) {int len = source.length();boolean isEmoji = false;for (int i = 0; i < len; i++) {char hs = source.charAt(i);if (0xd800 <= hs && hs <= 0xdbff) {if (source.length() > 1) {char ls = source.charAt(i + 1);int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;if (0x1d000 <= uc && uc <= 0x1f77f) {return true;}}} else {// non surrogateif (0x2100 <= hs && hs <= 0x27ff && hs != 0x263b) {return true;} else if (0x2B05 <= hs && hs <= 0x2b07) {return true;} else if (0x2934 <= hs && hs <= 0x2935) {return true;} else if (0x3297 <= hs && hs <= 0x3299) {return true;} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d|| hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c|| hs == 0x2b1b || hs == 0x2b50 || hs == 0x231a) {return true;}if (!isEmoji && source.length() > 1 && i < source.length() - 1) {char ls = source.charAt(i + 1);if (ls == 0x20e3) {return true;}}}}return isEmoji;}private static boolean isEmojiCharacter(char codePoint) {return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA)|| (codePoint == 0xD)|| ((codePoint >= 0x20) && (codePoint <= 0xD7FF))|| ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))|| ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));}/*** 过滤emoji 或者 其他非文字类型的字符* * @param source* @return*/public static String filterEmoji(String source) {if (StringUtils.isBlank(source)) {return source;}StringBuilder buf = null;int len = source.length();for (int i = 0; i < len; i++) {char codePoint = source.charAt(i);if (isEmojiCharacter(codePoint)) {if (buf == null) {buf = new StringBuilder(source.length());}buf.append(codePoint);}}if (buf == null) {return source;} else {if (buf.length() == len) {buf = null;return source;} else {return buf.toString();}}}
}public static void main(String[] args) { String string = "��都嗨��、齐静��给你��"; System.out.println(EmojiFilter.containsEmoji(string)); System.out.println(EmojiFilter.filterEmoji(string)); }

处理符号(处理微信昵称特殊符号)相关推荐

  1. php 过滤微信符号昵称,PHP方法处理微信昵称特殊符号过滤

    我们在通过PHP获取微信昵称,并且存于数据库的时候,由于一些昵称带有特殊符号,所以存不进去,这时候我们可以通过下面的方式来处理. 方法二 protected function removeEmoji( ...

  2. 全字符微信名 php,PHP方法处理微信昵称特殊符号过滤

    我们在通过PHP获取微信昵称,并且存于数据库的时候,由于一些昵称带有特殊符号,所以存不进去,这时候我们可以通过下面的方式来处理. 方法二protected function removeEmoji($ ...

  3. 微信特殊字符php,PHP处理微信昵称特殊符号过滤方法

    我们在通过PHP获取微信昵称,并且存于数据库的时候,由于一些昵称带有特殊符号,所以存不进去,这时候我们可以通过下面的方式来处理. 方法二protected function removeEmoji($ ...

  4. mysql微信昵称特殊符号_MySQL保存微信昵称中的特殊符号造成:(Incorrect string value: xxxx'for column ‘name’ at row 1)异常...

    欢迎关注 CSDN:程序员小羊 微信公众号:程序员小羊 博客园:程序员小羊 今天有业务员反应,编辑某个用户的信息的时候出现了异常,异常信息如下: Incorrect string value: &qu ...

  5. 关于获取带特殊符号的微信昵称

    最近做微信公众号的功能,刚开始没注意,拉取用户信息的时候,如果昵称有那种特殊符号,则保存到mysql数据库,其实是对mysql编码有要求的,一般我们装mysql数据库的话,一般编码都是UTF-8,而要 ...

  6. mysql 如何存带有特殊符号的微信昵称

    PHP 将用户昵称已urlencode的方式加密存入数据库urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+ //将中文文 ...

  7. 微信昵称有特殊符号怎么保存到mysql库里?

    微信昵称有特殊符号怎么保存到mysql库里? mysql库怎么保存emoji表情? 这里提供 1 种稳妥有效的方法: // 入库之前,使用 Base64 编码 String nickname = re ...

  8. unity3d在UGUI中显示带表情的微信昵称

    本人是搬砖党,都是网上到处搜集的知识点,这里做个总结或者说笔记 1.需求:有的微信昵称是含有表情的.当你的应用对接微信SDK后,获取到的昵称放到unity中,会显示异常.我们要做的就是让包含表情的微信 ...

  9. mysql 过滤微信昵称表情_微信昵称emoji表情的过滤

    前言 微信昵称现在五花八门,可以加入各种表情符号.这些符号存储到mysql数据库时存在一些问题.这里记录下我的解决方法. 问题 第一种方案:修改数据库编码,支持存储emoji表情 mysql的utf8 ...

  10. 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...

    微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...

最新文章

  1. 机房收费系统上机之逻辑思维
  2. 拿来主义——老外写的系统统计脚本
  3. 如何把apdu[decode_len]打印出来
  4. 【需求工程】需求依赖矩阵
  5. 草稿 断开式连接 1204
  6. 着陆页UI KitWanted,可参考的模板
  7. [C#] 代码混淆和加壳
  8. OpenCV摄像头标定
  9. 机器学习中最重要的公式——贝叶斯公式
  10. md5加密?什么是不可逆?
  11. 百度senta使用方法
  12. Java 小型图书馆管理系统
  13. 抖音新版抓包方案,绕过sslpinning 直接修改so
  14. Show出你的高超技能 首届“中国高性能云计算创新大赛”要开赛啦!
  15. PHP合成推广微信推广海报 PHP合成图片 PHP在图片上添加文字 PHP制作图片
  16. BTC系列 - UTXO事务模型
  17. 声学混响中说的RT60是什么意思?
  18. GUC-10 线程八锁
  19. 一文读懂去中心化无线网络DeWi
  20. log4j升级到log4j2 spring

热门文章

  1. Excel常用技巧1
  2. 大专码农和985程序员有什么区别?
  3. 一文搞懂 UndeclaredThrowableException
  4. 技术人的未来(一)——跳槽
  5. Windows磁盘清理工具
  6. 新计算机c盘太小,电脑C盘太小,F盘太大,怎么重新调整分区容量?
  7. Qmail加装自动杀毒(转)
  8. PCB中负片层的含义
  9. 大数据系列之Java调用elasticsearch的增删查改聚合
  10. js清除网页广告代码