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

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

Susan Sarandon
發布: 2024-11-27 08:48:14
原創
248 人瀏覽過

How to Fix MySQL's

對Django 中Unicode 字串的MySQL「錯誤字串值」錯誤進行故障排除

嘗試使用Django 在MySQL 中儲存unicode 字串時,您可能會遇到錯誤訊息,指出「字串值不正確。」此問題的出現​​是由於MySQL 對utf-8 字元集中unicode字元大小的限制。

根本原因

MySQL 的 utf-8 字元集支援每個字元最多 3 個位元組。但是,某些 unicode 字元需要 4 個位元組或更多。當儲存此類字元時,MySQL 會引發「字串值不正確」錯誤。

解決方案

要解決此問題,您需要執行以下步驟:

  1. 升級MySQL到5.5或更高版本:MySQL 5.5以上版本支援utf8mb4字元集,它可以處理4 位元組unicode 字元。
  2. 將資料庫、表格和欄位轉換為 utf8mb4:修改 MySQL 資料庫、表格和欄位以使用 utf8mb4 字元集。
  3. 設定 Django 使用 utf8mb4: 指定「字元集」將 Django 的 settings.py 檔案中的選項變更為 'utf8mb4'。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        ...
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}
登入後複製

其他注意事項

  • 如果在資料庫重新建立期間遇到錯誤「指定的金鑰太長」 ,將帶有索引的CharFields 的最大長度減少33%。
  • 或者,編輯您的 MySQL 配置以刪除長度限制。但是,這需要額外的 Django 修改。

PostgreSQL 相容性

與 MySQL 不同,PostgreSQL 支援以 utf8 字元集儲存 4 位元組 unicode 字元。因此,您可以切換到 PostgreSQL 作為處理較長字元長度的 unicode 字串的更合適選項。

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

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