nickname

更新时间:2022-11-25 01:02:17 阅读: 评论:0


2022年11月25日发(作者:深圳职业培训学院)

⼩程序中获取⽤户nickName后关于emoji表情存⼊数据库及查

询的⽅法

刚开始写⼩程序,获取客户昵称,后来发现⽤户昵称是可以为emoji表情的,⽽Mysql数据库中是不⽀持直接将emoji表情直接存⼊数

据库的,后来在⽹站上找了⼀个⽅法将所有的昵称转变为Unicode编码存⼊数据库例如:ud83cudf52这个样⼦的字符串

具体⽅法为:

将str转变为Unicode未解码字符串:

publicstaticStringunicode(Stringsource){

StringBuffersb=newStringBuffer();

char[]source_char=Array();

Stringunicode=null;

for(inti=0;i

unicode=tring(source_char[i]);

if(()<=2){

unicode="00"+unicode;

}

("u"+unicode);

}

ng();

}

其中的source就是需要转换的字符串。

如果从数据库中获取需要将数据库中的Unicode未解码字符串转变为解码后的字符,具体⽅法为

⽅法⼀:

publicstaticStringdecodeUnicode(Stringunicode){

StringBuffersb=newStringBuffer();

String[]hex=("u");

for(inti=1;i<;i++){

intdata=nt(hex[i],16);

((char)data);

}

ng();

}

⽅法⼆:

publicstaticStringdecodeUnicode2(StringdataStr){

intstart=0;

intend=0;

finalStringBufferbuffer=newStringBuffer();

while(start>-1){

end=f("u",start+2);

StringcharStr=null;

if(end==-1){

charStr=ing(start+2,());

}el{

charStr=ing(start+2,end);

}

charletter=(char)nt(charStr,16);

(newCharacter(letter).toString());

start=end;

}

ng();

}

通过以上两种⽅法将数据库中的字符串转变成中⽂字符或者emoji表情

但是后来⼜发现⼀个问题,就是⽆法通过模糊查询或者精确查询'ud83cudf52'这样的字符串,具体原因似乎是Mysql会将''舍去,

所以lece*fromtablewherenick_namelike'%ud83cudf52%'这样查出来的是空的,如果需要查询这样的字符需要将''转变

成'_'来进⾏查询lece*fromtablewherenick_namelike'%_ud83c_udf52%'这样就可以查出⾃⼰想查询的信息了。

留此信息,仅供参考

本文发布于:2022-11-25 01:02:17,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/15367.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:lose weight
下一篇:青岛赛思
标签:nickname
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图