尝试呈现模板时,我遇到以下错误:
DjangoUnicodeDecodeError: 'utf8' codec can't decode bytes in position 26-27: invalid data. You passed in '\xce\x88\xce\xbe\xce\xbf\xce\xb4\xce\xb1 \xcf\x83\xcf\x84\xce\xb7\xce\xbd \xce\xb5\xcf\x81\xce\xb3\xce...' (<type 'str'>)
这个模板相当大,也很复杂,所以我希望能得到一些关于如何追踪这到底是从哪里来的提示。在
一些可能有用的事实:
我不确定到底在哪里寻找编码错误的数据,任何提示或指针都将不胜感激。在
万一有人和我有类似的情况: 最近,我将MySQL表改为使用排序规则utf8_bin,并遇到了相同的问题。我发现在staging中我有MySQL python1.2.3。升级到1.2.4为我解决了这个问题。我使用的是python2.7,Django1.4.2。在
在某个地方,你正在截断一个字符串,但是你是在一个
str
而不是unicode
上进行的,所以你最终将一个UTF-8字符序列一分为二。始终对unicode
执行文本操作,从不str
。在异常报告的是26个字节的有效UTF-8后跟
'\xce...'
在我看来,你的代码或Django代码中的某个软件正在做这样的事情:
在你的例子中用
too_big_display(your_Greek_text_encoded_in_utf8,30)
调用它所以你看到了一个次要错误。。。
\xce.
不是有效的UTF-8。在我建议您仔细查看回溯(,您应该向我们展示,并且仍然可以通过编辑您的问题)来查看是否存在主要错误的证据。如果没有,请仔细检查您的代码是否有这样的截断。在
相关问题 更多 >
编程相关推荐