JAVA微信开发-如何保存包含特殊字符的微信昵称

我们在做微信开发的时候,有一个很重要的就是通过openid获取用户的详细信息,包含昵称,头像,省,市,区的信息,但是现在移动时代,很多人追求个性,在名字当中大量使用火星文或者表情符。(本人实际测试过一个20w+用户的公众号,昵称,省市区的信息都有可能包含特殊字符,暂时不了解为什么省市区都出现特殊字符的情况)这给微信开发带来了一些问题,我们在获取昵称之后保存到mysql数据库当中去就会出现错误。

下面三种解决办法:

1.取到了用户的昵称,把含有特殊字符的信息过滤掉然后进保存,好处是简单,坏处是会损失昵称细节,在非常不严格的情况下,才能够使用。

 

nickname.replaceAll("[\ue000-\uefff]","");

2.对mysql进行特殊设置,好处是你设置了好了之后可以一劳永逸的解决问题,坏处是可能会影响mysql的性能,并且假如你的数据库,表已经建立好,修改起来比较麻烦。

第一步:找到你的mysql的配置文件,一般叫my.cnf,打开之后全局搜索 character 关键词,可以搜索出很包含这个字符的信息,这个是设置字符编码的,让他们的值都等于utf8mb4,例如:default-character-set=utf8mb4。

第二步:修改表列的字符集,把你现有表的字符集全部改为utf8mb4编码。

第三步:JDBC数据库连接

jdbc:m
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值