2012-04-08 15 views
5

我想設置我的Django/mysql網站使用UTF-8。請指導我在django和mysql中所做的更改,以確保以下幾點。如何設置Django和MySQL使用UTF-8工作

  1. 用戶輸入的在形式的數據將被總是被編碼爲UTF-8

  2. 在MySQL存儲數據作爲UTF8

  3. 在模板正確地顯示UTF8編碼數據

  4. 另外我想知道是否移動到UTF-8編碼將刪除像下面的unicode解碼錯誤。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 55: ordinal not in range(128)

非常感謝。

回答

22

這裏一些建議:

1)創建數據庫

CREATE DATABASE <dbname> CHARACTER SET utf8; 

docs

2時)將下列特殊註釋在腳本的第一或第二線使用utf8編碼:

# -*- coding: utf-8 -*- 

nice article about python and utf8

3)使用Unicode字符串用U在* .py文件前綴

unicodeString = u"hello Unicode world!" 

4)使用您的基本模板的部分follwing meta標籤:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
+0

我怎樣才能改變我現有的數據庫支持UTF-8。在settings.py或每個python文件中添加# - * - coding:utf-8 - *足夠了嗎? – shiva 2012-04-08 11:27:58

+0

您應該在每個使用unicode符號的文件中添加'# - * - coding:utf-8 - * - '。此鏈接http://www.devcha.com/2008/03/convert-existing-mysql-database-from.html可以幫助您轉換現有的數據庫表,但「始終執行備份」 – 2012-04-13 16:22:20