2012-05-04 36 views
0

我该怎么办...Django和的UnicodeDecodeError

___I有从我上传的.zip文件与图片的上传表单。每当有一个非ASCII字符的文件标题时,我会得到一个unicode解码错误。

title = ' '.join([filename[:filename.rfind('.')], str(count)]) 

错误:

此行生成图像的名称,而这正是这一点让我错误的行:'utf8' codec can't decode byte 0x82 in position 2: invalid start byte. You passed in 'cr\x82ations' (<type 'str'>)

什么,我试图做的事:

我也试过.decode('utf-8')。但无论我尝试什么,每次都会得到相同的结果。

我读了关于在site.py中将默认djangos ascii更改为utf-8的方法,但是我不确定这会有所帮助,而且很确定我不想这样做。

任何帮助表示赞赏。

+0

你应该使用'decode()',是的,但你确定它是UTF-8吗? – ilvar

回答

0

我也相信首先使用.decode()是正确的选择,但是,代码页(“UTF -8'))你使用可能不正确。你可以尝试'1252'还是其他一些?这里有一些你可能感兴趣的标准编码[链接] http://docs.python.org/library/codecs.html?highlight=arabic

0

这个失败的原因是因为你试图加入一个正常的str对象:

而不是

' '.join(..) 

使用:

u' '.join(..) 

或者使用让您的生活更轻松:

from __future__ import unicode_literals