mysql 微信用户昵称emoji 完整保存】的更多相关文章

微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情.起先,我总以为MySQL只能保存纯文本数据.但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji表情)已不在话下. 起先,我的项目是无法保存这些含有emoji表情的昵称.为了鲜明的对比前后我做出的调整,先来看看之前的状况. 1.mysql表字段定义 `third_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户第三方账…
<?php header('Access-Control-Allow-Origin:*'); $access_token = !empty($_GET['access_token'])?$_GET['access_token']:''; $openid = !empty($_GET['openid'])?$_GET['openid']:''; //该微信url不允许前端ajax直接访问,只能由本地后端访问获取数据,再通过ajax传给前端 $url = "https://api.weixin…
在PHP接受到微信用户昵称入库的时候报错 原因:utf-8 最大3个字节,而emoji占4个字节 解决办法: 1.修改mysql 数据库的字符集,改为utf8mb4,但是前提是MySQL的版本需要5.5以上 由于我用的MySQL还是5.0的,所以用其他方法 2.用PHP过滤emoji private function emoji_encode($nickname){ $strEncode = ''; $length = mb_strlen($nickname,'utf-8'); for ($i=…
  java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) at com.mysql.jdbc.MysqlIO.…
微信昵称中包含emoji表情标签,某些标签是使用了4字节编码的UTF8. 而大多数MySQL数据库现在使用的是3字节UTF8编码,这样会导致保存为空,且不会提示失败. 解决方法有2个,一个是升级到MySQL5.5+版本,支持utf8mb4编码格式,然后执行下面的变更语句: ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; 这样可以完整保存用户昵称,但系统升级风险较大,需要多方面测试. 另外一个方法更容易,就是…
微信开发时候,有些用户使用Emoji表情作为用户昵称,导致数据库保存昵称时候不识别导致昵称为空,现在提出以下解决方案: /** +---------------------------------------------------------- * 过滤用户昵称里面的特殊字符 +---------------------------------------------------------- * @param string $str 待输出的用户昵称 +-------------------…
笔记 8.用户模块开发之保存微信用户信息     简介:开发User数据访问层,保存微信用户信息 问题:             微信回调 用户昵称乱码             解决:                 nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8"); 1.封装User对象 2.插入数据库             获取openid后,查询是否有此用户,如果有则不发请求去获取…
前段时间微信小程序对获取用户昵称和头像方法进行了更新,网上很多的文章都已经不适用了,这里简单总结一下,首先,传统接口wx.getUserInfo的效果会弹出一个给用户的弹窗,需要用户授权,经过测试传统的wx.getUserInfo目前还是能用的,但是在使用时候会有官方log提醒你,这个方法需要升级.然后就是官方提供的最新方法Open-data标签,使用这个标签可以不用用户授权直接获得头像和昵称 例子: <open-data type="userAvatarUrl"><…
ssm项目中遇到微信用户名称带有表情,插入失败问题 问题 Mysql的utf8编码最多3个字节,而Emoji表情或者某些特殊字符是4个字节. 因此会导致带有表情的昵称插入数据库时出错. 解决方法 一. 因为忘记了 mysql目录, 所以用下面命令查找一下 // 查找安装目录 whereis mysql // 查找运行目录 ps -ef | grep mysql 二. 关闭mysql mysqladmin -u root shutdown 三. 修改目录下ini文件 vim my.cnf 内容如下…
小程序官方流程图如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html : 如果此图理解不清楚的地方,也可参看我的博客 : https://www.cnblogs.com/ealenxie/p/9888064.html 本文是对接微信小程序自定义登录的一个完整例子实现 ,技术栈为 : SpringBoot+Shiro+JWT+JPA+Redis. 如果对该例子比较感兴…