在django做QQ登錄中:Error 1366: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...' for column 'content'


在做第三方登錄時,

我一個QQ昵稱帶表情包,三方登錄就報 (1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89 \\xE5...' for column 'first_name' at row 1"),

另一個QQ存漢字,就能正常登錄

可能的原因:

  • 第一:檢查以下你的編輯器的編碼是否設置為UTF-8;這是最容易忽略的原因之一。
  • 第二:檢查以下你數據庫的varchar/char等相關字段是否已經設置為utf8

1、如果用的是navicat,需要檢查兩個地方;

 

 

 

2、是否都已經設置:

 

實在不行就將utf8改成utf8mb4

Google說MySQL的utf8不是真正的UTF8,只能包含三個字節的unicode,4個字節就會報錯。要解決此總是需要使用utf8mb4 這個編碼。可是我把表和column的CHARSET都改成utf8mb4 后仍無法存入Emoji字符。

3、那就要修改Django數據庫配置的字符集

 

 

所以,建議大家以后在設計表時 default character set 最好設置為utf8mb4,因為現在Emoji字符已經很流行了,用戶難免會在瀏覽器里輸入Emoji字符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM