2012-04-08 11 views
5

Chcę ustawić moją stronę Django/mysql do pracy z UTF-8. Proszę, poproś mnie o zmiany, które muszę wprowadzić w django i mysql, aby upewnić się, co następuje.jak ustawić django i mysql do pracy z UTF-8

  1. użytkownika wprowadzone dane w formularzach zawsze będą zakodowane jako UTF-8

  2. przechowywania danych w mysql jako utf8

  3. Wyświetlanie utf8 zakodowanych danych w szablonie poprawnie

  4. Chciałbym także wiedzieć, czy przejście do kodowania UTF-8 spowoduje usunięcie błędu dekodowania Unicode, jak poniżej.

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

Wiele dzięki.

Odpowiedz

22

tutaj kilka wskazówek:

1) wykorzystują kodowanie utf8 podczas tworzenia bazy

CREATE DATABASE <dbname> CHARACTER SET utf8; 

docs

2) umieścić następujący specjalny komentarz w pierwszej lub drugiej linii skryptu:

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

nice article about python and utf8

3) Użyj ciągi Unicode u prefiks w plikach * .py

unicodeString = u"hello Unicode world!" 

4) używa follwing tag meta w sekcji szablonu bazowego:

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

Jak mogę zmienić istniejących baz danych do obsługi UTF-8. czy wystarczy dodać # - * - kodowanie: utf-8 - * w pliku settings.py lub w każdym pliku Pythona? – shiva

+0

powinieneś dodać '# - * - coding: utf-8 - * -' w każdym pliku, w którym używasz symboli Unicode. ten link http://www.devcha.com/2008/03/convert-existing-mysql-database-from.html może pomóc w konwersji istniejących tabel bazy danych, ale "zawsze rób kopie zapasowe" –

Powiązane problemy