【问题标题】:MySQL - Django can not display greek charactersMySQL - Django 无法显示希腊字符
【发布时间】:2016-07-29 13:56:42
【问题描述】:

我在设置 mysql db 以正确识别 django 中的希腊字符时遇到问题。

setting.py

...
'OPTIONS': {
    'charset': 'utf8',
    'use_unicode': True,
 }
...

我尝试使用windows-1253iso-8859-1 而不是charset 中的utf8,但没有结果。

我已经通过 CMD 在希腊语中成功存储了数据库记录,但是当我再次尝试通过 ORM 在 CMD 中执行相反的操作时,我得到了奇怪的字符。

【问题讨论】:

  • 请这样做,看看它是否被正确存储:SELECT col, HEX(col) ...。希腊语(在 utf8 中)十六进制应该是 2 个十六进制字节:CExxCFxx
  • 数据正确存储在 MySQL 中(通过 phpmyadmin 可见),但我无法通过 Django ORM 正确提取它们。这仅适用于国际字符,而不适用于 ASCII。数据库排序规则是 utf8.unicode.ci

标签: mysql django character-encoding display


【解决方案1】:

Django 需要client_encoding: 'UTF8'

这告诉 MySQL 你的字节是 utf8。

【讨论】:

  • 应该如何指定?在settings.py中作为DATABASES的参数?
  • @Serk 不,这是通过 SQL 直接应用的配置:就像这样:ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
相关资源
最近更新 更多