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
再次查看确认
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
10 rows in set (0.00 sec)
大坑:
新建数据库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中文乱码问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人