python - MySQL存储中文单词时,变成乱码

标签 python mysql django

我使用 Python/Django 连接 MySQL。

当我在Mysql中存储中文字符串时,我得到乱码。
发生了什么?

我已经设置了 Django 项目的 settings.py,并且 ENCODING 键设置为 utf-8。我做错了什么?

这是我在 settings.py 中的 DATABASES 变量:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'NAME': 'admindb1',
        'USER': 'root',
        'PASSWORD': 'root',
        'ENCODING': 'utf-8',
    }
}

最佳答案

您需要了解数据库/表/列级别的字符集/排序规则设置。列级设置优先于其他设置。因此,我提供了可用于在数据库的每个级别执行这些更改的命令。


检查您当前的配置(数据库):

显示创建数据库db_name;

检查您当前的配置(表):

在 name='tbl_name' 处显示表状态

检查您当前的配置(列):

显示 tbl_name 的完整列;


更改字符集/排序规则(数据库):

更改数据库 db_name 默认字符集 utf8;

更改字符集/排序规则(表):

更改表 tbl_name 默认字符集 utf8;

更改字符集/排序规则(列):

更改表 tbl_name 转换为字符集 utf8;

关于python - MySQL存储中文单词时,变成乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713228/

相关文章:

php - 如何在 Yii Framework 2 中将此原始查询转换为 ActiveRecord

mySQL - 可以根据以前的记录值选择记录吗?

python - 控制 django 中查看和模板输出的请求

python - 我怎样才能在模型表单中拥有相当于 django 的管理内联功能?

python - 无法通过博客实例访问管理器

python - Jython 随机模块产生与 cpython 不同的结果

c++ - Python 和/或 C/C++ 中的高精度算术?

mysql - 使用 REGEXP 将字符串变量添加到 MySQL SELECT 时是否需要添加引号?

python - 使用 MySQL 的 Django Web 框架从请求对象获取数据

python - 如何在 Python 中模拟字典