Emoji 特殊字符处理
来源:互联网 发布:淘宝网羊绒线儿童 编辑:程序博客网 时间:2024/05/29 02:20
Emoji 特殊字符处理 ,对UTF-8的MYSQL数据库插入Emoji等 特殊字符时会报错。
1. 过滤
2. MYSQL字符设置为utf8mb4
public class EmojiFilter { /** * 检测是否有emoji字符 * * @param source * @return 一旦含有就抛出 */ public static boolean containsEmoji(String source) { if (StringUtils.isEmpty(source)) { return false; } int len = source.length(); for (int i = 0; i < len; i++) { char codePoint = source.charAt(i); if (isEmojiCharacter(codePoint)) { // do nothing,判断到了这里表明,确认有表情字符 return true; } } return false; } 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 (!containsEmoji(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); } else { } } if (buf == null) { return source;// 如果没有找到 emoji表情,则返回源字符串 } else { if (buf.length() == len) {// 这里的意义在于尽可能少的toString,因为会重新生成字符串 buf = null; return source; } else { return buf.toString(); } } }}
0 0
- Emoji 特殊字符处理
- (手机表情过滤) Emoji与unicode特殊字符的处理
- java特殊字符emoji校验
- mysql对emoji特殊字符进行存储
- Android 过滤特殊字符和emoji表情
- mysql对emoji特殊字符进行存储
- SQL特殊字符处理
- 特殊字符处理
- 特殊字符处理
- SQL特殊字符处理
- 特殊字符处理标签
- C#特殊字符处理
- xml 特殊字符处理
- 特殊字符的处理
- 处理特殊字符
- XML 特殊字符处理
- XML 特殊字符处理
- sql处理特殊字符
- Spark算子:RDD行动Action操作(4)–countByKey、foreach、foreachPartition、sortBy
- 利用log4j显示hibernate打印sql中的参数
- SDWebImage底层实现原理及内部实现过程
- hdu5742 It's All In The Mind
- js 倒计时功能 (未测试)
- Emoji 特殊字符处理
- EasyDarwin开源流媒体云平台中boost Base64编解码后与源长度不匹配的bug
- 栈和队列
- jsp简单实现统计在线人数(未测试)
- [Unity优化]减少顶点数目
- 2016 Multi-University Training Contest 1 1004 GCD HDU 5726 (RMQ)
- SpringBoot入门系列:第四篇 redis
- 线程中中的调度图
- 计算一个点是否在多边形里 JavaScript实现(未测试)