APP中使用微信登录,流程一般是APP通过微信SDK请求code,然后APP使用code请求自己的服务器,服务器根据code获取access token,然后根据token和openid获取用户信息。在最后一步获取用户信息时经常出现中文乱码问题,这里记录下解决方案。

获取用户信息中文乱码

这里的乱码主要是昵称,有时候也有国家和省份城市信息乱码,如果里面包含了中文,解决方法是: 解析API请求结果之前设置encoding

,这里以python为例:

import requests

req = requests.get('https://api.weixin.qq.com/sns/userinfo', params={

'access_token': access_token,

'openid': openid,

'lang': 'zh_CN',

})

req.encoding = 'utf-8' # 解决微信用户名乱码问题

print(req.json())

网上有些地方也说需要将请求参数 lang 设置为“en”,或者设置headers中的Language为“en”;自己试了下其实不设置也OK,相反设置了之后返回的用户信息就是英文形式的,不便于我们解析和处理。

Emoji表情昵称乱码

微信昵称中可以包含Emoji表情,为了能够正常存储用户信息,我们需要在数据库层面设置数据库字符集解决这个问题,这里以MySQL数据为例。

通过上面的方式,我们已经可以正常解析Emoji表情,但是由于数据库字符集不支持,存储时会报错,为了能够存储Emoji表情,我们需要将数据库字符集设置为utf8mb4。具体操作如下:

1. 修改MySQL配置

# 打开配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 增加以下内容

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

# 重启MySQL

sudo service mysql restart

2. 修改数据库,表的字符集

ALTER database DB_NAME default character set = utf8mb4;

ALTER table TABLE_NAME default character set = utf8mb4;

ALTER table TABLE_NAME convert to character set utf8mb4;

这样设置之后就可以正常存储Emoji表情啦~~

Over!

注意:本文来自降龙。本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,请您自行验证核实并承担相关的风险与后果!

CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。

微信昵称乱码 mysql_微信登录昵称中文乱码 Emoji表情乱码问题总结相关推荐

  1. 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...

    微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...

  2. 截取含有中文、Emoji表情、特殊符号的字符串

    在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文.Emoji表情.以及一些特殊符号,这时使用String的substring()进行截取操作,结果就有可能是乱码或者不符合要求.这是因为JV ...

  3. 如何截取包含中文、Emoji表情的字符串

    如何截取包含中文.Emoji表情的字符串 在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文.Emoji表情.以及一些特殊符号,这时使用String的substring()进行截取操作,结果 ...

  4. mysql取出的emoji表情是乱码_解决MySQL emoji表情乱码问题

    问题:解决MySQL emoji表情乱码问题 说明:在一些选择表情的功能里,往往传递到后端入库会抛出异常,这就需要进行处理,方法如下: 方式1.在mysql表点击设置中找到选项,并配置utf8mb4 ...

  5. java emoji表情 乱码_java 微信昵称带有emoji 表情乱码

    问题描述: ipone5s中昵称输入"emoji表情",保存数据库有问题. 运行环境: Java.Tomcat.mysql.Linux(我的Linux下为乱码,这个是linux问题 ...

  6. java emoji表情 乱码_emoji表情乱码

    这个东东叫:emoji 首先你System.out.println出来,确认一下在控制台能正常显示.证明从前台到后台是没有乱码的 确认JDBC版本,在网上查下,高于某个版本以后,才支持emoji将my ...

  7. 微信昵称乱码 mysql_微信昵称乱码及mysql编码格式设立(utf8mb4)_mysql

    微信昵称乱码及mysql编码格式设置(utf8mb4) 参考文章:http://www.2cto.com/weixin/201504/386801.html 1.保证mysql版本5.5.3及以上,m ...

  8. 微信昵称乱码 mysql_微信昵称乱码及mysql编码格式设置(utf8mb4)

    http://www.2cto.com/weixin/201504/386801.html 1.保证mysql版本5.5.3及以上,mysql在5.5.3版本中引入新的编码格式,取名为utf8mb4, ...

  9. 微信小程序连接mysql_微信小程序连接MySQL数据库(读取+写入)demo

    通过php文件进行数据中转.经试验有效可行!!! 1.php 部分 1.1.连接数据库 connect_error) { echo "系统异常,连接数据库失败"; } else { ...

  10. IDEA中文棱形乱码错误解决方法--控制台中文输出棱形乱码

    目录 正确解决方法 使用Idea Maven创建项目,控制台输出错误,中文乱码成棱形. 控制台输出错误如下:乱码部分为中文 在编辑区.搜索区编码均正确. 错误原因 IDEA对文件的编码与解码方式不同, ...

最新文章

  1. 为什么2G/3G和AI擦不出火花?他们用这篇论文告诉你答案
  2. 企业大数据运用实战案例分享
  3. 基于opencv的手写数字字符识别
  4. [学习笔记]matlab
  5. Spring Cloud【Finchley】-01服务提供者与服务消费者
  6. IDEA中安装MyBatis Log Plugin插件完整显示执行的mybatis的sql语句
  7. 深度学习目标检测之 YOLO v4
  8. 浅谈-LINUX 操作系统启动过程
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城管理系统
  10. CentOS 7 安装及设置
  11. gzp解压命令 linux_Linux-压缩解压命令(gzip,zip,tar,bzip)
  12. 所谓的三十之后无技术
  13. 在CAD中容易混淆的概念
  14. HTML5与传统HTML的区别
  15. C++课设:GUI电话簿程序
  16. jaxl php,php – jaxl无法连接到Prosody
  17. 百家号怎么发送链接,发送自己的链接变成文字等解答
  18. 管理学原理试题及答案
  19. latex如何换页 一页放不下
  20. Android 架构之路 (1)-- Android 客户端与服务器的数据交互总结

热门文章

  1. 计算机专业在哪个城市就业好,计算机专业在哪几个城市就业好点?
  2. 导弹防御系统(LIS+dfs)
  3. 美景订餐管理系统--用于公司内部加班订餐
  4. Ubuntu Linux
  5. python借助OpenCC实现中文繁体转简体
  6. 编写高效的JAvascript——Nicholas C. Zakas(读书笔记)
  7. IE11 For Win7、win2008中文版官方下载地址
  8. 编辑中的word变成只读_word只读模式怎么改 word保存文件提示此文件为只读无法保存修改方法...
  9. 举个栗子!Tableau技巧(22):如何导入其它地图源
  10. .Net大局观(2).NET Core 2.0 特性介绍和使用指南