在Django 中儲存Unicode 字串時出現錯誤字串值錯誤
當嘗試將unicode 字串儲存到Django 的auth_user 模型時,您可能會遇到“錯誤的字串值”錯誤。此錯誤通常是由 MySQL 字元集和排序規則設定引起的。
MySQL 字元集和排序規則
MySQL 支援 UTF-8 字元集,但它有一個字元數限制為 3 位元組。這意味著在 MySQL 中無法使用標準 UTF-8 字元集儲存 4 位元組的 unicode 字元。
問題說明
當 Django 嘗試儲存時unicode 字串到 auth_user 模型,MySQL 嘗試將它們轉換為 UTF-8 字元集。但是,如果字串包含 4 個位元組字符,則轉換會失敗並導致“字串值不正確”錯誤。
解決方案
要解決此問題,您可以:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ... 'OPTIONS': {'charset': 'utf8mb4'}, } }
附加註意事項
以上是如何修復在 Django 中儲存 Unicode 字串時出現的「字串值不正確」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!