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

本人 python+django+MySQL 環(huán)境

類似 Incorrect string value: '\xF4\x8F\xAE\xB3 ?這樣的錯(cuò)誤

首先通過(guò) ?show variables like'%char%' ?命令,查看mysql配置的編碼

show variables like'%char%'

下面是我的mysql編碼狀態(tài),這些根據(jù)目前本人的知識(shí)量最好是 utf8編碼,我的mac機(jī)器安裝的時(shí)候character_set_server 是latin1格式的,所以必須要改一下編碼格式

標(biāo)準(zhǔn)狀態(tài)如圖

更改server 編碼,其他類似

1.關(guān)閉本機(jī)MySQL服務(wù)

1)通過(guò)系統(tǒng)偏好設(shè)置 ?停止 MySQL 服務(wù)或者通過(guò)代碼

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

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

有些MySQL版本中沒(méi)有my-medium.cnf 這個(gè)文件而是my-default.cnf

sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf? (復(fù)制my-default.cnf 到 /etc/my.cnf)

sudo vi /etc/my.cnf

[client]部分加入:

default-character-set=utf8

[mysqld]部分加入:

character-set-server=utf8

通過(guò)vi 修改.cnf文件后不要忘了 wq 保存修改

3.重啟MySQL服務(wù)

cd? ? /usr/local/mysql/bin? (進(jìn)入目錄)

sudo su ? (獲取權(quán)限)

./mysqld_safe --skip-grant-tables & (重啟服務(wù)器)

control+D ? (退出當(dāng)前編輯模式)

4.刪除之前的數(shù)據(jù)庫(kù)

很多朋友可能和我一樣修改完上面的.cnf文件后,以為就ok了,但是還是一樣的錯(cuò)誤

這是需要把之前的數(shù)據(jù)庫(kù)刪除,當(dāng)然數(shù)據(jù)還是要自己保留一下的

drop database <數(shù)據(jù)庫(kù)名>

5.重新創(chuàng)建UTF-8編碼的數(shù)據(jù)庫(kù)

CREATE DATABASE <數(shù)據(jù)庫(kù)名稱> DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

6.Django 同步數(shù)據(jù)庫(kù)

先注釋掉 admin.py ?models.py ?所有model,執(zhí)行下面代碼,然后把注釋掉的代碼取消,再重新執(zhí)行下面代碼

python3 manage.py makemigrations

python3 manage.py migrate

7. 登陸Django ?admin 后臺(tái)

插入中文字符成功,到此結(jié)束

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容