我的一个模特中有一个TextField
。我尝试将一串日本字符插入数据库,我收到了这个错误:
OperationalError at /admin/pages/page/add/
(1366, "Incorrect string value: '\\xE3\\x83\\x91\\xE3\\x83\\xAF...' for column 'body' at row 1")
我认为Django,Python和MySQL支持Unicode并首先使用它。发生了什么,我该如何解决?
答案 0 :(得分:2)
这不是Python / Django相关的问题。您的MySQL表列不支持您当前使用的unicode格式。
MySQL使用的默认字符集是utf-8
。如果要更改任何特定列的字符集,可以将查询运行为:
ALTER TABLE db.table MODIFY COLUMN my_column VARCHAR(255)
CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
其中:
答案 1 :(得分:0)
您只需要在保存值的同时进行流动。
character_set_results
您需要在保存之前使用 unicode_escape 进行编码 (self.name = str(self.name.encode('unicode_escape'))) 然后您将能够保存任何值(包括日语字符) 无需进行任何其他设置或数据库更改