E企盈营销工具技术服务商 热线:4006-838-530

【微信小程序】微信小程序开发用户昵称中带有emoji表情的处理方法

E企盈直播平台营销卖货系统

刚开始写小程序,获取客户昵称,后来发现用户昵称是可以为emoji表情的,而Mysql数据库中是不支持直接将emoji表情直接存入数据库的,后来在网站上找了一个方法将所有的昵称转变为Unicode编码存入数据库 例如:ud83cudf52这个样子的字符串具体方法为:将str转变为Unicode未解码字符串:        public static String unicode(String source){                StringBuffer sb = new StringBuffer();                char [] source_char = source.toCharArray();                String unicode = null;                for (int i=0;i<source_char.length;i++) {                    unicode = Integer.toHexString(source_char[i]);                    if (unicode.length() <= 2) {                    unicode = “00” + unicode;                }                    sb.append(“\u” + unicode);              }                return sb.toString()        }    其中的source就是需要转换的字符串。     如果从数据库中获取需要将数据库中的Unicode未解码字符串转变为解码后的字符,具体方法为     方法一:            public static String decodeUnicode(String unicode) {                     StringBuffer sb = new StringBuffer();                          String[] hex = unicode.split(“\\u”);                      for (int i = 1; i < hex.length; i++) {                    int data = Integer.parseInt(hex[i], 16);                    sb.append((char) data);                }                return sb.toString();           }         方法二:            public static String decodeUnicode2(String dataStr) {                     int start = 0;                     int end = 0;                     final StringBuffer buffer = new StringBuffer();                     while (start > -1) {                         end = dataStr.indexOf(“\u”, start + 2);                         String charStr = null;                         if (end == -1) {                             charStr = dataStr.substring(start + 2, dataStr.length());                         } else {                             charStr = dataStr.substring(start + 2, end);                         }                           char letter = (char) Integer.parseInt(charStr, 16);                       buffer.append(new Character(letter).toString());                         start = end;                     }                     return buffer.toString();              }        通过以上两种方法将数据库中的字符串转变成中文字符或者emoji表情        但是后来又发现一个问题,就是无法通过模糊查询或者精确查询’ud83cudf52’这样的字符串,具体原因似乎是Mysql会将”舍去,所以 selece * from table where nick_name like ‘%ud83cudf52%’ 这样查出来的是空的,如果需要查询这样的字符需要将”转变成’_’来进行查询 selece * from table where nick_name like ‘%_ud83c_udf52%’ 这样就可以查出自己想查询的信息了。 原文地址:https://blog.csdn.net/qq_34492495/article/details/79092992微信小程序

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 【微信小程序】微信小程序开发用户昵称中带有emoji表情的处理方法
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏