问题描述
微信用户昵称问题存在特殊字符时,无法保存。因为utf8只能保存三个字节,但是微信表情很多都是四个字节,故无法保存。
解决方式
将微信字符集由utf8 设置为 utf8mb4
mysql字符集设置
window
此处设置字符集与数据库安装路径不同,注意区别
MySQL5.7修改字符集
本人安装的mysql版本是5.7.20,安装好mysql后就要对字符集进行修改了,于是照着网上的大部分教程说的去安装目录找一个my-default.ini文件,然后重命名为my.ini,再对其进修改字符集即可,具体如下:
1、mysql5.7.20的my.ini文件不在安装目录下,如果你是默认安装mysql的,那么它的my.ini文件在隐藏文件夹C:\ProgramData\MySQL\MySQL Server 5.7下
2、对my.ini文件进行修改,修改前请备份好一份。
在该my.ini文件下进行配置修改 :
[client]
default-character-set = utf8[mysql]
default-character-set = utf8[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8_unicode_ci
init_connect=’SET NAMES utf8’
3、修改my.ini文件后,保存,再重启mysql服务。计算机——右键——管理——服务,找到mysql57,对其右键停止,再启动即可
4、打开终端,登陆mysql后再查看字符集:show variables like ‘character%’; 此时更改字符集成功。
Linux
修改mysql字符集
查看字符集 show variables like ‘%character%’;
主要关注character_set_server的字符集 默认为latin1不支持中文,需要修改为utf8
vim /etc/my.cnf
1、在[client]字段里加入default-character-set=utf8,如下:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
2、在[mysqld]字段里加入character-set-server=utf8,(注意KEY不要写错,网上很多文章都是写default-character-set是错的)如下:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
3、在[mysql]字段里加入default-character-set=utf8,如下:
[mysql]
no-auto-rehash
default-character-set=utf8
完成后重启 service mysql restart
...
...
Copyright 2021 sunfy.top ALL Rights Reserved