首頁 > 資料庫 > mysql教程 > 使用 Django 在 MySQL 中儲存 Unicode 字串時如何修復「字串值不正確」錯誤?

使用 Django 在 MySQL 中儲存 Unicode 字串時如何修復「字串值不正確」錯誤?

DDD
發布: 2024-12-15 10:54:12
原創
671 人瀏覽過

How to Fix

在MySQL 中儲存Unicode 字串時出現不正確的字串值錯誤

嘗試將unicode 字串儲存到Django 的auth_user模型時,出現「不正確的字串值」 」 可能會出現錯誤。這是因為MySQL 對utf-8字元有3 個位元組的限制,而某些unicode 字元需要4 個位元組。節的原因,無法儲存某些unicode字符

解決方案:

要解決此問題:

使用utf8mb4 字符集:

將MySQL 升級到版本5.5 或更高版本,然後變更資料庫、表格和列以使用utf8mb4字元

    在Django 中指定字元集:
  1. 在Django 設定檔中,新增下列選項來指定utf8mb4 字元集:
  2. 減少CharField 長度:
  3. 如果遇到「Specified key was too long”問題,將帶有索引的CharFields 的max_length 減少大約33%。例如,從255 更改為191。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        ...
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}
登入後複製
  1. 替代方案:

切換到PostgreSQL: PostgreSQL 支援4 位元組不帶unicode 字元

    修改MySQL 配置:
  • 編輯MySQL 配置以刪除位元組限制,但請注意,這可能需要額外的Django 修改。 🎜>重要注意事項透過切換到utf8mb4,您需要注意舊版MySQL 或其他可能不支援 4位元組的應用程式的潛在相容性問題限制。

以上是使用 Django 在 MySQL 中儲存 Unicode 字串時如何修復「字串值不正確」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板