刚开始写小程序,获取客户昵称,后来发现用户昵称是可以为emoji表情的,而Mysql数据库中是不支持直接将emoji表情直接存入数据库的,后来在网站上找了一个方法将所有的昵称转变为Unicode编码存入数据库例如:ud83cudf52这个样子的字符串
具体方法为:将str转变为Unicode未解码字符串:
publicstaticStringunicode(Stringsource){StringBuffersb=newStringBuffer();char[]source_char=source.toCharArray();Stringunicode=null;for(inti=0;isource_char.length;i++){unicode=Integer.toHexString(source_char[i]);if(unicode.length()=2){unicode="00"+unicode;}sb.append("\u"+unicode);}
returnsb.toString()
}
其中的source就是需要转换的字符串。
如果从数据库中获取需要将数据库中的Unicode未解码字符串转变为解码后的字符,具体方法为
方法一:
publicstaticStringdecodeUnicode(Stringunicode){StringBuffersb=newStringBuffer();String[]hex=unicode.split("\\u");for(inti=1;ihex.length;i++){intdata=Integer.parseInt(hex[i],16);sb.append((char)data);}returnsb.toString();
}
方法二:
publicstaticStringdecodeUnicode2(StringdataStr){intstart=0;intend=0;finalStringBufferbuffer=newStringBuffer();while(start-1){end=dataStr.indexOf("\u",start+2);StringcharStr=null;if(end==-1){charStr=dataStr.substring(start+2,dataStr.length());}else{charStr=dataStr.substring(start+2,end);}charletter=(char)Integer.parseInt(charStr,16);buffer.append(newCharacter(letter).toString());start=end;}returnbuffer.toString();
}
通过以上两种方法将数据库中的字符串转变成中文字符或者emoji表情
但是后来又发现一个问题,就是无法通过模糊查询或者精确查询'ud83cudf52'这样的字符串,具体原因似乎是Mysql会将''舍去,所以selecefromtablewherenick_namelike'%ud83cudf52%'这样查出来的是空的,如果需要查询这样的字符需要将''转变成'_'来进行查询selecefromtablewherenick_namelike'%_ud83c_udf52%'这样就可以查出自己想查询的信息了。
原文地址:https://blog.csdn.net/qq_34492495/article/details/79092992
最新资讯
-

小程序制作平台选型踩坑记录:2026年五大主流方案横向对比
2026 年微信小程序月活达 10.7 亿、覆盖 108 个行业,本次横向对比即速应用、乔拓云、凡科、有赞、微盟五大主流平台,分三阶段给出选型结论,核心聚焦成本、扩展性、运营能力三大维度。 -

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。










