Django db编码

时间:2010-05-03 09:25:48

标签: python django encoding

我的编码有点问题。 db中的数据没问题,当我在php中选择数据时就可以了。当我得到数据并尝试在模板中打印时出现问题,我得到 - Å端口而不是Šport等。

所有东西都设置为utf-8 - 在settings.py中,模板中的元标记,db表格,我甚至为模型指定了 unicode 方法,但似乎没有任何效果。我在这里变得无望......

以下是一些代码:

class Category_info(models.Model):
  objtree_label_id = models.AutoField(primary_key = True)
  node_id = models.IntegerField(unique = True)
  language_id = models.IntegerField()
  label = models.CharField(max_length = 255)
  type_id = models.IntegerField()

class Meta:
    db_table = 'objtree_labels'

def __unicode__(self):
    return self.label

我甚至试过回复你的“%s”%self.label。

以下是观点:

def categories_list(request):
  categories_list = Category.objects.filter(parent_id = 1, status = 1)
  paginator = Paginator(categories_list, 10)

try:
    page = int(request.GET.get('page', 1))
except ValueError:
    page = 1

try:
    categories = paginator.page(page)
except (EmptyPage, InvalidPage):
    categories = paginator.page(paginator.num_pages)

return render_to_response('categories_list.html', {'categories': categories})

也许我只是盲目和/或愚蠢,但它不起作用。所以感谢任何帮助,提前谢谢。

此致

1 个答案:

答案 0 :(得分:0)

绝对不是Django问题。据我所知,你试图反省现有的数据库(我想它是MySQL,因为它在从4.x到5.x的错误升级后看起来像是常见的问题)。您应该找到必要的连接选项,并通过DATABASE_OPTIONS设置提供它们。尝试这样的事情:

DATABASE_OPTIONS = {
    'use_unicode': True,
    'charset': 'utf8'
}