1. 程式人生 > 其它 >Django中文亂碼解決

Django中文亂碼解決

三步走解決:

1.修改Django的settings

2.修改mariadb的配置檔案

3.重啟mysql服務

大坑:原來的資料庫mariadb修改配置檔案為utf8後,原來的資料庫test還是沿用的原來的字符集latin1,所以需要建立新的資料庫test2,這樣Django ORM再次黃建時候就會預設建立urf8的表。

修改settings

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {'charset': 'utf8'}, #增加選項
        '
NAME': 'test2', 'USER': 'soymilk', 'PASSWORD': '123456', 'HOST': '172.16.241.2', 'PORT': '3306', } }

修改mariadb配置檔案

/etc/my.cnf

[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci

/etc/my.cnf.d/mysql-clients.cnf

[mysql]
default-character-set=utf8

重啟mariadb

systemctl restart mariaDB

大坑:

新建資料庫test2

create database test2;

然後直接用ORM同步

mysql解決的話,修改的配置檔案不一樣(待驗證)

/etc/mysql/my.cnf

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

參考:

https://stackoverflow.com/questions/1073295/django-character-set-with-mysql-weirdness 解決Django中文亂碼

https://blog.csdn.net/DaLiShuiJiao/article/details/78122802 解決mariadb中文亂碼問題