微信昵称乱码 mysql_微信登录昵称中文乱码 Emoji表情乱码问题总结
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表情乱码问题总结相关推荐
- 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...
微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...
- 截取含有中文、Emoji表情、特殊符号的字符串
在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文.Emoji表情.以及一些特殊符号,这时使用String的substring()进行截取操作,结果就有可能是乱码或者不符合要求.这是因为JV ...
- 如何截取包含中文、Emoji表情的字符串
如何截取包含中文.Emoji表情的字符串 在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文.Emoji表情.以及一些特殊符号,这时使用String的substring()进行截取操作,结果 ...
- mysql取出的emoji表情是乱码_解决MySQL emoji表情乱码问题
问题:解决MySQL emoji表情乱码问题 说明:在一些选择表情的功能里,往往传递到后端入库会抛出异常,这就需要进行处理,方法如下: 方式1.在mysql表点击设置中找到选项,并配置utf8mb4 ...
- java emoji表情 乱码_java 微信昵称带有emoji 表情乱码
问题描述: ipone5s中昵称输入"emoji表情",保存数据库有问题. 运行环境: Java.Tomcat.mysql.Linux(我的Linux下为乱码,这个是linux问题 ...
- java emoji表情 乱码_emoji表情乱码
这个东东叫:emoji 首先你System.out.println出来,确认一下在控制台能正常显示.证明从前台到后台是没有乱码的 确认JDBC版本,在网上查下,高于某个版本以后,才支持emoji将my ...
- 微信昵称乱码 mysql_微信昵称乱码及mysql编码格式设立(utf8mb4)_mysql
微信昵称乱码及mysql编码格式设置(utf8mb4) 参考文章:http://www.2cto.com/weixin/201504/386801.html 1.保证mysql版本5.5.3及以上,m ...
- 微信昵称乱码 mysql_微信昵称乱码及mysql编码格式设置(utf8mb4)
http://www.2cto.com/weixin/201504/386801.html 1.保证mysql版本5.5.3及以上,mysql在5.5.3版本中引入新的编码格式,取名为utf8mb4, ...
- 微信小程序连接mysql_微信小程序连接MySQL数据库(读取+写入)demo
通过php文件进行数据中转.经试验有效可行!!! 1.php 部分 1.1.连接数据库 connect_error) { echo "系统异常,连接数据库失败"; } else { ...
- IDEA中文棱形乱码错误解决方法--控制台中文输出棱形乱码
目录 正确解决方法 使用Idea Maven创建项目,控制台输出错误,中文乱码成棱形. 控制台输出错误如下:乱码部分为中文 在编辑区.搜索区编码均正确. 错误原因 IDEA对文件的编码与解码方式不同, ...
最新文章
- 为什么2G/3G和AI擦不出火花?他们用这篇论文告诉你答案
- 企业大数据运用实战案例分享
- 基于opencv的手写数字字符识别
- [学习笔记]matlab
- Spring Cloud【Finchley】-01服务提供者与服务消费者
- IDEA中安装MyBatis Log Plugin插件完整显示执行的mybatis的sql语句
- 深度学习目标检测之 YOLO v4
- 浅谈-LINUX 操作系统启动过程
- 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物商城管理系统
- CentOS 7 安装及设置
- gzp解压命令 linux_Linux-压缩解压命令(gzip,zip,tar,bzip)
- 所谓的三十之后无技术
- 在CAD中容易混淆的概念
- HTML5与传统HTML的区别
- C++课设:GUI电话簿程序
- jaxl php,php – jaxl无法连接到Prosody
- 百家号怎么发送链接,发送自己的链接变成文字等解答
- 管理学原理试题及答案
- latex如何换页 一页放不下
- Android 架构之路 (1)-- Android 客户端与服务器的数据交互总结
热门文章
- 计算机专业在哪个城市就业好,计算机专业在哪几个城市就业好点?
- 导弹防御系统(LIS+dfs)
- 美景订餐管理系统--用于公司内部加班订餐
- Ubuntu Linux
- python借助OpenCC实现中文繁体转简体
- 编写高效的JAvascript——Nicholas C. Zakas(读书笔记)
- IE11 For Win7、win2008中文版官方下载地址
- 编辑中的word变成只读_word只读模式怎么改 word保存文件提示此文件为只读无法保存修改方法...
- 举个栗子!Tableau技巧(22):如何导入其它地图源
- .Net大局观(2).NET Core 2.0 特性介绍和使用指南