2012-04-08 14 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