2016-12-24 49 views
2

當在管理面板中保存有表情符號字段的字段時,我在django中發現了以下錯誤。 「:在第1行 '\ XF0 \ x9F \ X98 \ x9E \ XF0 ...' 列 '名' 不正確的字符串值」Python3 + Django1.10 + mysqlclient1.3.9:無法保存表情符號

OperationalError在/管理/核心/消息/添加/ (1366, )

我確定數據庫已準備好用於utf8mb4,因爲我可以在phpmyadmin中編寫/讀取這些表情符號字符。

更多信息,保存的表情符號在phpmyadmin中正確顯示,但在django輸出中顯示???

在我的另一個django項目中,表情符號運行良好,直到我找不到兩個環境的區別。

那麼,當我用python保存同樣的東西時會出現什麼問題呢?

這個問題是在Django框架下,所以我想要一個解決方案,使Django的工作。

+0

的可能的複製[MySQL的utf8mb4,錯誤時保存表情符號(HTTP:/ /stackoverflow.com/questions/35125933/mysql-utf8mb4-errors-when-saving-emojis) – pvg

回答

2

設置在settings.pyOPTIONS DATABASE部分 - 字符集解決了這個問題:

# Database 
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'myproject', 
     'HOST': 'mysql', 
     'USER': 'django', 
     'PASSWORD': '******', 
     'OPTIONS': { 
      # !!!!!! THIS MATTERS !!!!!! 
      'charset': 'utf8mb4', 
     } 
    }, 
} 

查看文檔:https://docs.djangoproject.com/en/1.10/ref/settings/#charset