最近在使用django的过程中,发现之前对中文编码的理解并不怎么正确,在此记录一下。
1.在所有需要显式使用中文的地方加上#-*- coding: UTF-8 -*-标识,(包括注释中的中文和代码中字符串的中文)
2.django在db中存储的数据是经过encode的,但是通过模型取出的数据,是经过decode的。
3.python中在进行字符串连接的时候,必须保证所有的子字符串编码或者未编码一致
OK,先从最简单的赋值开始。如下代码:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(message)s',
filename='log.txt',
filemode='a+')
x = '我爱你'
logging.info(x)
print x
输出是:
我爱你
log.txt中的结果是:
2010-06-25 ...