数据库用utf8不会出问题吗

来源:5-2 数据库迁移

追梦逐梦白日做梦

2019-03-11

不应该用utf8mb4吗?utf8不是好多字显示不出来吗?

写回答

3回答

咚咚呛

2019-03-12

这样:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'backend',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'CHARSET': 'utf8mb4'
    }
}


0
0

咚咚呛

2019-03-12

报什么错呢?数据库的编码配置可分两个级别:全局配置级别和数据库级别。


全局配置级别可以通过mysql.conf配置文件进行配置,这里就不展开了。


数据库级别可在创建数据库时指定字符集,如:

CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8mb4;

或使用图形界面时,在图形界面指定字符集也可。


另外需要注意创建数据库连接时的字符集需要与数据库配置的字符集一致,比如在Django侧配置文件settings.py的数据库配置要和实际连接的数据库字符集一致,否则有可能引起问题。

0
2
咚咚呛
回复
追梦逐梦白日做梦
通过CHARSET字段
2019-03-12
共2条回复

咚咚呛

2019-03-11

嗯,为这个同学认真的态度点赞。虽然在MySQL数据库使用utf-8字符集能够表示大部分的文字,能够满足大部分的场景,但是使用utf8mb4字符集才是使用MySQL数据库最妥当的方法。这里是老师疏忽了,非常感谢同学的指出。

另外需要注意的是utf8mb4字符集是MySQL特有的字符集,是因为历史遗留原因而发明的,在MySQL里面utf8mb4是utf8的超集。但在编程语言或其他数据库中,这个概念并不通用。

0
1
追梦逐梦白日做梦
怎么才能使用utf8mb4呢?想用但是一直报错。
2019-03-11
共1条回复

Django+小程序技术打造微信小程序助手

0到1完整项目实战过程,是难得的Django+小程序全栈项目体验。

994 学习 · 507 问题

查看课程