【发布时间】:2018-03-04 08:29:33
【问题描述】:
我指定数据库应该是utf8mb4:
CREATE DATABASE IF NOT EXISTS MY_DB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
然后我运行一个脚本来创建表格并从一些平面文件中填充表格。这些文件具有latin1 字符,并以latin1 编码打开。
db 的表在models.py 文件中指定,因为这是一个Django 应用程序。 Django 文档说你像我在创建数据库时那样指定编码。
数据加载,但在 MySQL Workbench 中,表看起来像是“latin1”:
SELECT
`tables`.`TABLE_SCHEMA`,
`tables`.`TABLE_NAME`,
`tables`.`TABLE_COLLATION`,
`collations`.`character_set_name`
FROM
`information_schema`.`TABLES` AS `tables`,
`information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
`tables`.`table_schema` = DATABASE()
AND `collations`.`collation_name` = `tables`.`table_collation`
;
为什么表格看起来是latin1,我怎样才能使它们成为utf8mb4?
【问题讨论】:
-
这取决于您的创建表语法和您的全局 MySQL 编码。如果没有指定,全局默认将胜出
标签: python mysql django-models utf-8 iso-8859-1