2010-05-03 58 views
0

我有一個編碼問題。在db中的數據是好的,當我選擇在PHP中的數據其確定。問題出在我得到數據並嘗試在模板中打印時,我得到 - Å端口而不是Šport等。Django db編碼

所有內容都設置爲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 

我甚至有回報U 「%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}) 

也許我只是盲目的和/或愚蠢的,但它只是不工作。所以任何幫助表示讚賞,在此先感謝。

Regards

回答

0

這絕對不是Django的問題。據我瞭解,你試圖反思現有的數據庫(我想它是MySQL,因爲從4.x到5.x的不正確升級後它看起來像是常見的問題)。您應該找出必要的連接選項並通過DATABASE_OPTIONS設置提供它們。嘗試這樣的:

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

我試過你的建議,不幸的是沒有任何改變。是的,它是一個現有的數據庫(Mysql 5.x,現在是一個looong時間),但它並沒有升級。在將數據庫選項更改爲您推薦的內容之前,我使用了「init_command」:「SET NAMES'utf8'」。這可能是問題嗎?但另一方面,我正在使用現有的數據庫... – realshadow 2010-05-03 12:04:30

+0

還有一件事 - 當我將更新數據庫槽django中的數據時,編碼是好的。 – realshadow 2010-05-03 15:26:18