Emoji字符检查与替换
2016-01-07 09:17
507 查看
当文本包含Emoji字符的时候,存储到数据库或读取的时候需要进行编码和解码(如UTF_8),否则MySQL的存储可能有异常。
当有的文本不允许输入Emoji字符,或者显示时需要将Emoji替换为指定字符的时候可以用下面的几个工具方法。
当有的文本不允许输入Emoji字符,或者显示时需要将Emoji替换为指定字符的时候可以用下面的几个工具方法。
/** * 将字符串中的Emoji表情替换为* * @param source * @return */ public static String replaceEmojiToStar(String source){ String res = ""; if (Tools.isStrEmpty(source)) { return res; } if(!containsEmoji(source)){ return source; }else{ int len = source.length(); char[] dest = new char[len]; for (int i = 0; i < len; i++) { char codePoint = source.charAt(i); if (isNotEmojiCharacter(codePoint)) { dest[i] = codePoint; }else{ dest[i] = '*'; } } res = String.valueOf(dest); } return res; } /** * 检测是否有emoji字符 * * @param source * @return 一旦含有就抛出 */ public static boolean containsEmoji(String source) { if (Tools.isStrEmpty(source)) { return false; } int len = source.length(); for (int i = 0; i < len; i++) { char codePoint = source.charAt(i); if (!isNotEmojiCharacter(codePoint)) { return true; } } return false; } /** * 判断是否是非Emoji字符之外的正常字符,正常字符返回true * @param codePoint * @return */ private static boolean isNotEmojiCharacter(char codePoint) { return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)); }
相关文章推荐
- 学会使用IntelliJ IDEA 12 之教程二 (字体设置,光标设置)
- Firefox OS未死 至少这两款松下电视会搭载该系统
- [王垠系列]“解决问题”与“消灭问题”
- ibatis动态查询条件
- ExecutorService.execute(Runnable x) 判断是否完成,得到返回值
- QB64(3)
- Masonry布局框架的使用
- linux下实时查看tomcat运行日志
- [王垠系列]程序语言的常见设计错误(1) - 片面追求短小
- 一个安邦逻辑漏洞爆破密码的py脚本
- 2.取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出
- 孤儿进程与僵尸进程
- [王垠系列]谈语法
- C#使用iTextSharp为pdf添加文字
- IOS学习资源汇总
- GCD_1
- ntp服务端和客户端同步配置
- Hadoop优化清理本地temp临时文件方式
- 事件处理, UIControl的子类
- [王垠系列]Oberon 操作系统:被忽略的珍宝