A UnicodeDecodeError exception is raised if a string is converted to a unicode object, but the default encoding (or an explicit encoding used) does not have support for mapping one of the characters in the string to a unicode ordinal. For example:
>>>
>>> title = "Hello á"
>>> u = unicode(title)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 6: ordinal not in range(128)
>>>
>>> u = unicode(title, "latin1")
>>> u
u'Hello \xe1'
>>>
>>> u = title.decode("latin1")
>>> print u
Hello á
>>> type(u)
<type 'unicode'>
>>>