how to set django and mysql work with UTF-8

假装没事ソ 提交于 2020-01-12 02:02:13

问题


I want to set my Django/mysql site to work with UTF-8. Please guide me the changes I have to make in django and mysql to make sure the following things.

  1. User entered data in the forms will be always encoded as UTF-8

  2. Storing the data in mysql as utf-8

  3. Displaying utf8 encoded data in the template correctly

  4. Also I want to know whether moving to UTF-8 encoding will remove unicode decode error like below.

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

Many Thanks.


回答1:


here some advices:

1) use utf8 encoding when creating database

CREATE DATABASE <dbname> CHARACTER SET utf8;

docs

2) place the following special comment in the first or second lines of your script:

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

nice article about python and utf8

3) Use unicode strings with u prefix in *.py files

unicodeString = u"hello Unicode world!"

4) Use follwing meta tag in section of your base template:

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


来源:https://stackoverflow.com/questions/10061842/how-to-set-django-and-mysql-work-with-utf-8

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!