的Django模型UTF8我有latin1編碼舊的數據庫。我無法將其更改爲utf8。當我讀取模型中的值時,我收到亂碼文本。與傳統數據庫
我試圖用name.decode( 'UTF-8'),但它拋出一個unicode錯誤:
'ascii' codec can't encode characters in position 4-12: ordinal not in range(128)
name.encode( 'UTF-8')不工作要麼。
的Django模型UTF8我有latin1編碼舊的數據庫。我無法將其更改爲utf8。當我讀取模型中的值時,我收到亂碼文本。與傳統數據庫
我試圖用name.decode( 'UTF-8'),但它拋出一個unicode錯誤:
'ascii' codec can't encode characters in position 4-12: ordinal not in range(128)
name.encode( 'UTF-8')不工作要麼。
如果您可以訪問您的「settings.py」文件,那麼你可以更改設置說,數據庫是使用「latin1的」。
以下是在「settings.py」文件中的「數據庫」配置的示例。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test_db',
'USER': 'root',
'PASSWORD': '',
'HOST': '',
'PORT': '3306',
'OPTIONS': {
'charset': 'latin1',
'use_unicode': True, },
},
}
我有類似的問題前,如果籤這裏的鏈接Django database charset issue
感謝。這工作。但是你有沒有想法如何設置單個表格的字符集?一些表使用latin1,一些使用utf-8。 – wjheng 2013-03-27 08:08:24
AFAIK Django不支持對單個表設置的字符集。但我想有一些辦法可以做到這一點。 – 2013-03-27 09:11:17
u = unicode(name,'latin-1')
print u.encode('utf-8')
它的Latin-1,你爲什麼需要將其更改爲UTF-8? – 2013-03-27 04:32:31
這應該是一些中國文字。如果latin1顯示一些亂碼文本。 – wjheng 2013-03-27 05:59:02