在配置django时,经常遇到编码的问题,即中文显示成乱码的问题,我也是,现在终于知道解决方法了:
django的默认编码global_settings里定义的DEFAULT_CHARSET = UTF-8,也就是说django的编码是UTF-8的,如果你想要改为GB2312或者GBK只要在项目文件下的settings文件下添加 DEFAULT_CHARSET = GB2312就可以了。就不用在所有的py文件里都加coding=utf-8 或者 GB2312了,因为默认的编码就是UTF-8了。
但是问题还是存在,那么就是在网页中设置<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />。就没问题了。
其实有时候这样做了好是出现乱码,或因编码引起异常的话,就要注意了:你虽然改成<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />了,但是一定要将改网页文件以UTF-8的格式来保存。这才是关键。就好的方法就是使用DW来保存页面,如果使用记事本的话很有可能不是以UTF-8格式保存的。因为<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />只是表示文件要以UTF-8来编码,并不表示文件内容就是UTF-8编码格式的。
总结:
1.在settings里设置DEFAULT_CHARSET = UTF-8,必要是在py文件头加#coding=utf-8
2.在网页中添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,最好使用DW来保存,否则可能不是以UTF-8的格式来保存的。
来自:http://blog.csdn.net/guangboo/archive/2008/10/29/3173329.aspx