请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据库用utf8不会出问题吗

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

正在回答

3回答

咚咚呛 2019-03-12 12:48:00

这样:

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


0 回复 有任何疑惑可以回复我~
咚咚呛 2019-03-12 00:19:15

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


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


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

CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8mb4;

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


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

0 回复 有任何疑惑可以回复我~
咚咚呛 2019-03-11 22:21:27

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

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

0 回复 有任何疑惑可以回复我~
  • 怎么才能使用utf8mb4呢?想用但是一直报错。
    回复 有任何疑惑可以回复我~ 2019-03-11 23:59:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信