如何在django中设置表的char列的编码?

Max*_*yko 13 python mysql django

我有一个用Django编写的项目.应该存储一些字符串的所有字段都应该是UTF-8,但是,当我运行时

manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

所有相应的列都是用cp1252字符集创建的(它在哪里得到了 - 我不知道)我必须手动更新每一列......

有没有办法告诉Django首先使用UTF-8编码创建所有这些列?

顺便说一句,我使用MySQL.

drd*_*man 19

Django没有在CREATE TABLE语句中指定charset和collat​​ion .一切都由数据库字符集决定.ALTER DATABASE ... CHARACTER SET utf8 COLLATE utf8_general_ci跑步前做的syncdb应该有所帮助.

对于连接,Django会SET NAMES utf8自动发出,因此您无需担心默认的连接字符集设置.

  • 这是一个旧的答案,但只是注意到MySql的`utf8`不正确支持unicode,您应该使用`utf8mb4`字符集以获得适当的unicode支持https://mathiasbynens.be/notes/mysql-utf8mb4 (2认同)