Django mysql 阿拉伯语编码

2021-11-17 00:00:00 django encoding arabic mysql

我有一个带有 mysql 数据库的 django 应用程序.我们正在尝试推出该网站的阿拉伯语版本.目前的语言是英语.出于某种原因,当我通过管理面板用阿拉伯语写一些东西并单击保存时,它显示 ????而不是我写的阿拉伯语单词.我不知道如何解决它.

I've a django app with a mysql database. We are trying to launch the Arabic version of the website. The current language is English. For some reason when I write something in Arabic through the admin panel and click save, it shows ???? instead of the Arabic word i wrote. I've no idea how to fix it.

我按照这个 post 并添加了 #-*- coding: utf-8 -*- 到我的 admin.py、models.py 和 views.py 文件.没用

I followed this post and added #-*- coding: utf-8 -*- to my admin.py, models.py and views.py files. It didn't work

我还将这些添加到 my.conf mysql 文件中以更改字符集.它也没有用.

I also added these to my.conf mysql file to change the character set. It didn't work either.

character-set-server=utf8
collation-server=utf8_unicode_ci
init_connect='set collation_connection = utf8_unicode_ci;'

推荐答案

可能发生的事情:

  • 你有 utf8 编码的数据(好)
  • SET NAMES latin1 有效(默认,但错误)
  • 列被声明为CHARACTER SET latin1(默认,但错误)
  • you had utf8-encoded data (good)
  • SET NAMES latin1 was in effect (default, but wrong)
  • the column was declared CHARACTER SET latin1 (default, but wrong)

请提供SHOW CREATE TABLE,以便我们可以制定ALTER来修复列.

Please provide SHOW CREATE TABLE so we can formulate an ALTER to fix the columns.

Django 需要 client_encoding: 'UTF8';抱歉,我不知道去哪里了.

Django needs client_encoding: 'UTF8'; sorry, I don't know where that goes.

相关文章