Setel charset
pilihan untuk utf8mb4
di OPTIONS
perintah dari DATABASES
pengaturan dalam file pengaturan Django:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_db',
'USER': 'my_user',
'PASSWORD': 'my_pass',
'HOST': 'my.host',
'OPTIONS': {
'charset': 'utf8mb4' # This is the important line
}
}
}
Opsi ini akan diteruskan sebagai argumen ke fungsi koneksi driver mysql, yang biasanya adalah mysqlclient
. Di sini Anda dapat melihat dalam dokumentasi semua parameter ini:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -atribut
Jika Anda menggunakan driver yang berbeda untuk mysql, Anda mungkin memerlukan opsi lain.
Pastikan juga bahwa dalam database MySQL, rangkaian karakter baik kolom, tabel, atau seluruh database diatur ke utf8mb4
. Untuk info lebih lanjut tentang kumpulan karakter di MySQL, lihat:
Dokumen MySQL:Menentukan Kumpulan Karakter dan Kumpulan
MySQL docs:Set Karakter utf8mb4 Pengkodean Unicode UTF-8 (4-Byte)
Stack Overflow:Apa perbedaan antara charset utf8mb4 dan utf8 di MySQL?
Ada permintaan tarik yang sedang berlangsung di Django untuk membuat utf8mb4
defaultnya:https://github.com/django/django/pull/8886