Mon*_*lik 3 python django unicode encoding django-admin
我有以下错误:
/ admin/results_cop/copsegmentresult上的TemplateSyntaxError /
在渲染时抓住异常:('ascii','ISU欧洲花样滑冰锦标赛2009:高级女士们:短节目 - 2. Susanna P\xc3\x96YKI\xc3\x96',98,99,'序数不在范围内( 128)')
不呈现的字符串片段是:PÖYKIÖ
我没有得到的是为什么Django试图将字符串呈现为ASCII,为什么不是UTF-8?
我忘了问 - 我也很想知道如何摆脱错误;)
Bobince的答案是正确的:)我有类似的东西:
def __unicode__(self):
return "%s %s" (self.foo, self.bar)
Run Code Online (Sandbox Code Playgroud)
我猜你要求Django渲染一个字节串.不,u在这开头:
'ISU European Figure Skating Championships 2009: Senior Ladies Ladies: Short Program - 2. Susanna P\xc3\x96YKI\xc3\x96'
Run Code Online (Sandbox Code Playgroud)
所以Django可能会尝试将其编码为页面的编码,大概是UTF-8.但字节字符串不能直接编码; 它们必须首先是Unicode字符串.Python本身使用通常的默认编码执行此转换步骤ascii.
>>> 'P\xc3\x96YKI\xc3\x96'.encode('utf-8')
UnicodeDecodeError
Run Code Online (Sandbox Code Playgroud)
因此,您需要做的是在将字节字符串发送到模板之前,通过UTF-8解码将其转换为Unicode字符串.它来自哪里?通常,您应该将应用程序中的所有内容字符串保留为Unicode字符串.
| 归档时间: |
|
| 查看次数: |
3122 次 |
| 最近记录: |