Incorrect string value: '\xF4\x8F\xAE\xB3</...' for column 'contenthtml' at row 1

本人 python+django+MySQL 环境

类似 Incorrect string value: '\xF4\x8F\xAE\xB3  这样的错误

首先通过  show variables like'%char%'  命令,查看mysql配置的编码

show variables like'%char%'

下面是我的mysql编码状态,这些根据目前本人的知识量最好是 utf8编码,我的mac机器安装的时候character_set_server 是latin1格式的,所以必须要改一下编码格式

标准状态如图

更改server 编码,其他类似

1.关闭本机MySQL服务

1)通过系统偏好设置  停止 MySQL 服务或者通过代码

sudo /usr/local/mysql/support-files/mysql.server stop  

2.修改mysql配置文件 /etc/my.cnf

有些MySQL版本中没有my-medium.cnf 这个文件而是my-default.cnf

sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf  (复制my-default.cnf 到 /etc/my.cnf)

sudo vi /etc/my.cnf

[client]部分加入:

default-character-set=utf8

[mysqld]部分加入:

character-set-server=utf8

通过vi 修改.cnf文件后不要忘了 wq 保存修改

3.重启MySQL服务

cd    /usr/local/mysql/bin  (进入目录)

sudo su   (获取权限)

./mysqld_safe --skip-grant-tables & (重启服务器)

control+D   (退出当前编辑模式)

4.删除之前的数据库

很多朋友可能和我一样修改完上面的.cnf文件后,以为就ok了,但是还是一样的错误

这是需要把之前的数据库删除,当然数据还是要自己保留一下的

drop database <数据库名>

5.重新创建UTF-8编码的数据库

CREATE DATABASE <数据库名称> DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

6.Django 同步数据库

先注释掉 admin.py  models.py  所有model,执行下面代码,然后把注释掉的代码取消,再重新执行下面代码

python3 manage.py makemigrations

python3 manage.py migrate

7. 登陆Django  admin 后台

插入中文字符成功,到此结束

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容