好几个小时都没弄好,抓狂了,发出来请大家帮忙看看:
view文件中:
tags = ['电视机', '冰箱', '洗衣机']
输出到模板中显示该变量,浏览器报错:
'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)
我通过调试,发现tags的值为 ['\xe7\x94\xb5\xe8\xa7\x86\xe6\x9c\xba', '\xe5\x86\xb0\xe7\xae\xb1', '\xe6\xb4\x97\xe8\xa1\xa3\xe6\x9c\xba']
如果变量这样写 tags = [u'电视机', u'冰箱', u'洗衣机']
浏览器中会直接显示unicode编码:[u'\u7535\u89c6\u673a', u'\u51b0\u7bb1', u'\u6d17\u8863\u673a']
为了解决编码问题,我做了如下工作:
1. 确保所有py文件编码均为utf-8,在所有py文件头部添加:#-*- coding: utf-8 -*-
2. 确保所有模板html文件编码为utf-8,并在html头部声明<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3. settings文件中声明LANGUAGE_CODE = 'zh-cn' DEFAULT_CHARSET = 'UTF-8'
4. 数据库应该也没问题,使用的mongodb,默认使用的就是'utf-8'编码。
可是还不行,大家帮忙看看哪里出了问题?
view文件中:
tags = ['电视机', '冰箱', '洗衣机']
输出到模板中显示该变量,浏览器报错:
'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)
我通过调试,发现tags的值为 ['\xe7\x94\xb5\xe8\xa7\x86\xe6\x9c\xba', '\xe5\x86\xb0\xe7\xae\xb1', '\xe6\xb4\x97\xe8\xa1\xa3\xe6\x9c\xba']
如果变量这样写 tags = [u'电视机', u'冰箱', u'洗衣机']
浏览器中会直接显示unicode编码:[u'\u7535\u89c6\u673a', u'\u51b0\u7bb1', u'\u6d17\u8863\u673a']
为了解决编码问题,我做了如下工作:
1. 确保所有py文件编码均为utf-8,在所有py文件头部添加:#-*- coding: utf-8 -*-
2. 确保所有模板html文件编码为utf-8,并在html头部声明<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3. settings文件中声明LANGUAGE_CODE = 'zh-cn' DEFAULT_CHARSET = 'UTF-8'
4. 数据库应该也没问题,使用的mongodb,默认使用的就是'utf-8'编码。
可是还不行,大家帮忙看看哪里出了问题?