下面这些方式获取用户微信昵称如果昵称包含emoji可能出现乱码 该用户的微信昵称是🐮 到处飞 ,但是微信客户端能够正确显示
wx.getUserInfo({ success(res) { const userInfo = res.userInfo const nickName = userInfo.nickName const avatarUrl = userInfo.avatarUrl const gender = userInfo.gender // 性别 0:未知、1:男、2:女 const province = userInfo.province const city = userInfo.city const country = userInfo.country console.log("nickName ="+nickName); } }) //或者 标签
<open-data type="userNickName"></open-data> 都会出现这种问题
解决了吗
解决了没,,,我也遇到了
昵称中包含 console不支持的字符集
用urlencode之后再保存到数据库
一个每天人流量50+小程序TT,求大神关注
微信的API获取的时候就已经是乱码了 所以没办法的 只能由微信那边进行处理
不会呀,微信获取到还不会乱码
你可以将获取到的内容传到后端,后端urlencode,保存到数据库就ok啦,我以前就遇到这样的问题,现在都是这么处理的
转urlencode还有一个问题,就是数据库自动长度一点要够哦
可以看下我上面的小程序,我-》标本榜,第一名昵称就是图形的
正确
昵称字段的字符集改成 utf8mb4 试试
没有用的 数据库用的是utf8mb4编码 但是上面这个问题无关数据库的事 是微信获取昵称的时候就已经乱码了(PS:有时候会有时候不会) 您可以用上面的这个昵称🐮 到处飞试试看 然后用我上面的代码打印你就知道了 目测是小程序API的一个bug
你是在开发环境中看到是乱码吧?因为utf8mb4在电脑上不能正确显示。在手机真机上应该是可以正确显示的。
真机测试