還是之前說的問題,向數據庫存儲emoji表情的時候,報錯:Incorrect string value: '\xF0\x9F\xA4\x97\xF0\x9F...' for column 'content' at row 1。
上篇文章說到,只需要把字段的格式設置成utf8mb4的字符集就可以解決這個問題。確實如果我們把字段的字符集設置成這樣之后,使用數據庫管理工具的時候可以直接把emoji寫入到字段中,但是為什么在程序中寫入數據庫的時候還是報這個錯誤呢。
經過我的一番思索后想到,可能是因為數據庫連接的設置問題,連接數據庫的時候沒有指定字符集,數據庫連接字符集是用于在數據庫連接過程中指定字符編碼的參數。它決定了在連接數據庫時使用的字符編碼方式,一半連接數據庫的默認配置都是使用utf8的字符集進行連接,所以我傳過去的表情符號其實還是被使用utf8的字符集進行存儲了,所以還是報錯了。
那么只需要設置一下數據庫連接方式就可以了,把連接數據庫時使用的字符集設置為utf8mb4,Django如何設置連接數據庫使用的字符集呢,需要在項目的settings.py文件中修改數據庫配置文件,增加charset:utf8mb4即可解決問題




