MySql保存emoji表情


MySQL数据库保存emoji表情

报错提要信息

微信登录的用户 获取用户名/有些用户的名称会带有emoji表情
此时MySQL数据库就会报错 所以需要修改 让数据库能够保存emoji

报错信息

django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE5\\xA4\\xAB\\xE4\\xBA\\xBA' f

在django中settings.py添加设置

settings.py里面配置

'charset': 'utf8mb4',
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'HOST': '127.0.0.1',  # 数据库主机
        'PORT': 3365,  # 数据库端口
        'USER': 'edrfe',  # 数据库用户名
        'PASSWORD': 'rtyfghvbn',  # 服务器数据库用户密码
        'NAME': 'qaw',  # 数据库名字
        'OPTIONS': {
            "init_command": "SET foreign_key_checks = 0;",
            'charset': 'utf8mb4',
        }
    },
}

在MySQL中修改数据库的字符集

进入MySQL

root@iZbp1faknmuby6hc0tazirZ:~/# mysql -uedrfe -p 密码

修改指定数据库的字符集

ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

指定数据库 修改数据表的字符集

# 指定数据库
use 数据库名;

# 修改字符集
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改column字符集

ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

文章作者: 柒仔
文章链接: /article/10/
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 XiaoLiu!
侵权声明: 若无意对您的文章造成侵权,请您留言,博主看到后会及时处理,谢谢。
评论-----昵称和邮箱必填,网址选填
  目录