uni-app中uni.getUserInfo(OBJECT)获取QQ昵称乱码
uni-app中uni.getUserInfo(OBJECT)获取QQ昵称乱码
uni.getUserInfo(OBJECT)获取QQ的信息,昵称等出现乱码
原昵称为:♞凭栏听雨
province:北京
city:东城

9 回复
hx3.1.13版本 bug 已修复
更多关于uni-app中uni.getUserInfo(OBJECT)获取QQ昵称乱码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用Hx3.0打包的应用,同样的数据没有乱码
现在Hx的版本为最新的3.1.7
HX 3.1.7和3.1.8测试均未复现。请补充下详细的设备信息,多测几个设备看下,是否存在此问题
用的是目前是新版本,3.1.12 2021-5-14更新的
一样是乱码
经过测试发现:如果昵称中含有 “达”,“力”会乱码,改为其它就不会乱码,暂时没有测试到更多其它的汉字。
问题已复现,后续优化,感谢您的反馈!
bug 已确认。 三字节UTF8字符 在小概率场景出现此问题。 稍后版本修复
在uni-app中,使用uni.getUserInfo(OBJECT)
获取QQ用户信息时,昵称出现乱码(如“♞凭栏听雨”显示异常),通常是由于字符编码问题导致的。QQ昵称可能包含特殊字符或Unicode字符,而部分平台或设备在解析时未能正确处理。
解决方案:
-
检查编码处理:确保返回的数据使用UTF-8编码解析。在uni-app中,网络请求默认使用UTF-8,但某些情况下可能需要显式设置。
uni.getUserInfo({ provider: 'qq', success: (res) => { // 尝试对昵称进行解码或转码处理 let nickname = decodeURIComponent(escape(res.userInfo.nickname)); console.log(nickname); // 检查是否解决乱码 } });
-
使用Base64解码:如果昵称经过编码,可以尝试Base64解码(但需确认QQ返回数据格式)。
let decodedNickname = atob(res.userInfo.nickname);