Django 字符集与 MySQL 的怪异
我看到
OperationalError (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
我的一些变量看起来像是 UTF8 字符串
'name': 'p\xc7\x9d\xca\x87\xc9\x9f\xc4\xb1\xc9\xa5s Badge'
这是配置问题吗? 如果是这样,我该如何解决? 我想用 Unicode 来处理一切(我想)。
I'm seeing
OperationalError (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
It looks like some of my variables are UTF8 strings
'name': 'p\xc7\x9d\xca\x87\xc9\x9f\xc4\xb1\xc9\xa5s Badge'
Is this a configuration issue? If so, how can i solve it? I'd like to handle everything in Unicode (I think).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以通过 shell 更改表编码:
https://mayan.readthedocs .org/en/v0.13/faq/index.html
You can change the table encoding via the shell:
https://mayan.readthedocs.org/en/v0.13/faq/index.html
您的数据库似乎默认为 latin1_swedish_ci,因此无法接受所有 utf8 字符。 您需要更改 MySQL 数据库表的配置以使用 utf8_general_ci。 关于此的一篇很好的博文(带有工具的链接)可以在 找到MySQL 性能博客
It appears your database is defaulted to latin1_swedish_ci, and therefore cannot accept all utf8 characters. You need to change the configuration of the MySQL database tables to use utf8_general_ci. A good blogpost about this (with links to a tool) can be found at MySQL Performance Blog
您将在 django 设置文件中添加选项,如下所示:
您还需要在 /etc/mysql/my.cnf 文件中进行更改
然后重新启动 mysql 服务
使用以下查询交叉检查它是否有效
您应该得到以下输出
You will add OPTIONS in django settings file like below:
Also you will need to do change in /etc/mysql/my.cnf file
Then restart mysql service
Cross check it worked or not using following query
You should get following output