项目场景:
后台获取微信服务号的所有粉丝信息,涉及到昵称、地区、关注时间、openid、unionid【只有绑定开放平台才有】
问题描述:
后台点击获取粉丝数据,访问微信接口时会报错,nickname SQLException
详细报错代码贴:
java.sql.SQLException: Incorrect string value:‘\xF3\xA0\x80\xF3\Xa0...’ for column ‘nickname’ at row 1
原因分析:
sql语句问题,报错很明显,用户昵称涉及带表情的无法入库。
修改数据库nickname字段位数也不行。
解决方案:
想到了使用base64加密后存储数据库,前台展示时把传来的值base64解密后展示。
代码贴:
入库:Base64.encodeBase64String("从接口中拿到的nickname").getBytes("utf-8"))
前台展示:
new String(Base64.decodeBase64("从数据库拿到的nickname").getBytes()), "utf-8")
解决了,有问题可以留言沟通。