2012-04-08 8 views
5

Voglio impostare il mio sito Django/mysql per funzionare con UTF-8. Per favore guidami le modifiche che devo apportare in django e mysql per assicurarmi che le seguenti cose.come impostare django e mysql funzionano con UTF-8

  1. utente immesso i dati nei moduli saranno sempre codificati come UTF-8

  2. La memorizzazione dei dati in MySQL come utf8

  3. Visualizzazione dei dati utf8 codificati nel modello correttamente

  4. Inoltre, desidero sapere se passare alla codifica UTF-8 rimuoverà l'errore di decodifica unicode come di seguito.

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

Molte grazie.

risposta

22

qui alcuni consigli:

1) utilizzano la codifica utf8 durante la creazione del database

CREATE DATABASE <dbname> CHARACTER SET utf8; 

docs

2) inserire il seguente commento speciale nelle prime o seconde linee di script:

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

nice article about python and utf8

3) Utilizzare le stringhe Unicode con u prefisso nel file * .py

unicodeString = u"hello Unicode world!" 

4) Utilizzare follwing meta tag nella sezione del modello di base:

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

Come posso cambiare le mie basi di dati esistenti per supportare UTF-8. è sufficiente aggiungere # - * - coding: utf-8 - * in settings.py o in ogni file python? – shiva

+0

dovresti aggiungere '# - * - coding: utf-8 - * -' in ogni file in cui usi i simboli unicode. questo link http://www.devcha.com/2008/03/convert-existing-mysql-database-from.html può aiutarti a convertire le tue tabelle di database esistenti, ma "fa sempre backup" –