Đặt charset
tùy chọn cho utf8mb4
trong OPTIONS
chính tả của DATABASES
cài đặt trong tệp cài đặt 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
}
}
}
Các tùy chọn này sẽ được chuyển làm đối số cho hàm kết nối trình điều khiển mysql, thường là mysqlclient
. Tại đây, bạn có thể xem trong tài liệu tất cả các thông số này:
https://mysqlclient.readthedocs.io/user_guide.html#functions-and -các thuộc tính
Nếu bạn sử dụng trình điều khiển khác Tuy nhiên, đối với mysql, bạn có thể cần một tùy chọn khác.
Cũng đảm bảo rằng trong cơ sở dữ liệu MySQL, bộ ký tự của cột, bảng hoặc toàn bộ cơ sở dữ liệu được đặt thành utf8mb4
. Để biết thêm thông tin về các bộ ký tự trong MySQL, hãy xem:
Tài liệu MySQL: Chỉ định Bộ ký tự và đối chiếu
Tài liệu
MySQL: Bộ ký tự utf8mb4 (Mã hóa Unicode 4-Byte UTF-8)
Stack Overflow: Sự khác biệt giữa bảng mã utf8mb4 và utf8 trong MySQL là gì?
Có BTW một yêu cầu kéo đang diễn ra trong Django để tạo utf8mb4
mặc định: https://github.com/django/django/pull/8886