【发布时间】:2015-04-29 14:33:06
【问题描述】:
我在 (html) 模板中遇到宽度编码字符问题。在我的数据库中有类似的结果:
- Čaša
- Šišanje
这些词是克罗地亚语。在我的 settings.py 中 LANGUAGE_CODE 我已经设定 : LANGUAGE_CODE = 'hr-HR' 也尝试使用 LANGUAGE_CODE = 'hr'。 问题是当数据库以表单形式返回记录时:
category = forms.ModelChoiceField(queryset=Category.objects.all().filter(type_id="2"),
widget=forms.Select(attrs={'class': 'selectpicker'}), label=('Kategorija'),
initial='1', )
并且该字段的所有记录都必须在 HTML 页面中呈现,作为 selectpicker。 当我尝试加载该页面时,出现此错误:
- 异常类型:UnicodeEncodeError
- 异常值:'ascii' 编解码器无法在位置序号中编码字符 u'\u0107' 不在范围内 (128)
Python 版本:2.7.9
Django 版本:1.7.7
在我的 models.py 中,模型是:
class Category(models.Model):
id = models.AutoField(primary_key=True)
type_id = models.ForeignKey('CategoryType')
name = models.CharField(max_length=255)
def __str__(self):
return str(self.name)
我也尝试过:
class Category(models.Model):
id = models.AutoField(primary_key=True)
type_id = models.ForeignKey('CategoryType')
name = models.CharField(max_length=255)
def __str__(self):
return self.name
你知道解决这个问题的简单方法吗,我知道 python 3 有更好的 utf 编码,但我想继续使用 2.7。
【问题讨论】:
标签: python django python-2.7 encoding utf-8