微信小程序获取带表情的微信名乱码问题
微信小程序获取带表情的微信名乱码问题
在后台获取完微信用户数据后,对微信名进行UTF-8编码
URLEncoder.encode(nickName, "utf-8")
,将编码后的结果储存到数据库中,环境为mysql数据库。
完整代码:
/*** 解密用户敏感数据* @param encryptedData 明文,加密数据* @param iv 加密算法的初始向量* @param code 用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key* @return*/@RequestMapping(value = "/decodeUserInfo",method ={ RequestMethod.POST,RequestMethod.GET})public JSONObject decodeUserInfo(@RequestParam(value = "encryptedData")String encryptedData, @RequestParam(value = "iv")String iv, @RequestParam(value = "code")String code){JSONObject result=new JSONObject();try {/*** 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),* 可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。* 换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。* 前提是微信开放平台认证绑定了才可以获取到unionid否则只有openid*/result=WechatUtil.getDeCodeUserInfo(encryptedData,WechatUtil.getSessionKeyAndOpenid(code,requestUrl,appid,appSecret).getString("session_key"),iv);WechatInfo wechatInfo=new WechatInfo();wechatInfo.setUserAvatarUrl(result.getString("avatarUrl"));String nickName = result.getString("nickName");//获取用户名wechatInfo.setUserNickName(URLEncoder.encode(nickName, "utf-8"));//将微信昵称用utf-8编码后储存wechatInfo.setOpenId(result.getString("openId"));result.put("isDept",wechatInfoService.execWechatInfo(wechatInfo));logger.info("解密后的信息"+result.toString());}catch (Exception e){e.printStackTrace();logger.error(e.getMessage());}return result;}
读取微信名的时候,在实体类内定义一个新属性,用来接收解码后的微信名,供页面显示。
//UTF-8编码后的字符private String userNickNameUTF8;public String getUserNickNameUTF8() {try {//UTF-8解码后的字符return URLDecoder.decode(userNickName, "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return "";}public void setUserNickNameUTF8(String userNickNameUTF8) {this.userNickNameUTF8 = userNickNameUTF8;}
需要注意的是:存储时,使用的是实体中与数据库字段相对应的属性;而读取的时候,使用的实体中新定义的属性。
微信小程序获取带表情的微信名乱码问题相关推荐
- 微信小程序获取当前位置和城市名
这篇文章主要介绍了微信小程序获取当前位置和城市名的思路,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 目录 一.授权并获取经纬度 腾讯地图API **简介** Hello world! 一. ...
- 微信小程序自带地图_微信小程序开发之之地图功能(map)
本文将带你了解微信小程序开发之之地图功能(map),希望本文对大家学微信有所帮助. 主要介绍微信小程序中的地图模块相关功能.基本使用地图组件使用起来也很简单..wxml 1212参数列表及说明如下:除 ...
- 微信小程序自带地图_微信小程序之map地图
微信小程序地图操作比较简单,api也很少,使用map组件来展示.说到地图,那就先来看基础定位: 定位用到wx.getLocation(OBJECT)函数,代码如下: wx.getLocation({ ...
- 微信小程序自带地图_微信小程序地图上选择位置
实现效果 很多小程序都有如下需求: 小程序打开后,以文字形式显示用户所在位置,如果用户觉得不准,可以打开地图,在地图上自己选择位置,选择完成后,显示的用户的位置会发生变化 点击地址选择地点 选择地点之 ...
- 微信小程序自带地图_微信小程序获取当前位置并调用微信内置地图打开
图示: index.wxml 定位 index.js //index.js //获取应用实例 const app = getApp() Page({ data: { }, map:function() ...
- 微信小程序获取云服务器数据,微信小程序云开发服务端数据库API 获取集合数据...
Collection.get / Query.get 获取集合数据,或获取根据查询条件筛选后的集合数据. 如果没有指定 limit,则默认最多取 20 条记录. 如果没有指定 skip,则默认从第 0 ...
- 微信小程序获取当前页面url
微信小程序获取当前页面url 微信小程序获取当前页面的URL地址
- 微信小程序获取住户地区信息
微信小程序获取住户地区信息 微信小程序获取住户地区信息 微信小程序获取住户地区信息 1.现在app.js里面配置如下 { //向用户申请获取授权"permission": {&qu ...
- 微信小程序-获取用户位置(经纬度+所在城市)
微信小程序-获取用户位置(经纬度+所在城市) 文章目录 微信小程序-获取用户位置(经纬度+所在城市) 一.目标 二.实现思路 三.实现步骤 3.1 用到的接口函数 3.2 具体步骤 3.2.1 创建界 ...
最新文章
- django-pure-pagination 组件使用
- 20180530更新
- gitignore重要技巧
- H5中canvas和svg绘图方式介绍
- new调用函数,new具体做了什么?
- Haroopad安装与配置: Linux系统下最好用的Markdown编辑器
- 我的Android进阶之旅------gt;Android Studio 快捷键整理分享
- 云原生数据中台的 What、Why、Who、How和Where
- 根据Dockerfile构建镜像
- 24小时改变你的人生【转】
- linux扫描仪安装程序,给扫描仪在Linux系统里安个家
- matlab中.mat文件用法
- 网页/公众号音乐下载
- sdcard里边的东西能删除吗_手机内存中有一个sdcard文件夹删除不了
- 浅谈计算机网络及交换机基础配置
- 李云的25条职场发展原则
- 云南农业大学matlab,云南农业大学关于公第七届学生科技.doc
- Android系统在超级终端下命令大全
- [附源码]计算机毕业设计JAVA航空售票管理系统
- 中国长春西汀市场现状研究分析与发展前景预测报告(2022)
热门文章
- Codeforces869 E. The Untended Antiquity (随机化算法)
- 「数据架构」介绍下一代主数据管理(MDM)
- easypoi 多sheet导入_easy-poi: Easy-POI是一款Excel导入导出解决方案组成的轻量级开源组件。...
- JVM(4)—类加载机制
- 配方奶粉,尽量不用鲜奶
- 解析解与数值解的区别
- find()和findIndex()区别和用法
- [计算机一级MS备考]
- 如何拿到阿里offer的?面试流程及面试题
- EndNote自动生成毕业论文GB7714引文格式教程