Hi,

> > UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 2: 
> > invalid
> > start byte
> [...]
> >   File "/usr/lib/python3/dist-packages/lazygal/metadata.py", line 406, in
> > get_keywords
> >     values = self._metadata.get_tag_multiple(key)
> > SystemError: <class 'gobject.Warning'> returned a result with an error set

I do not have the same error.
I have "double free or corruption (out)".

$ exiv2 -g Iptc.Application2.Keywords lazygaltest/sample-bad-iptc-keywords.jpg
Iptc.Application2.Keywords                   String      5  Anton
Iptc.Application2.Keywords                   String      5  Bjrn
So this is not a bug in exiv2 which correctly ignores the bad char.

The raw tag reads b'Anton\x1c\x1c\x1c\x1cBj\xf6rn'. It is encoded in 'latin-1'.

>>> b'\xf6'.decode('latin-1')
'ö'
>>> 'ö'.encode('utf-8')
b'\xc3\xb6'

lazygal assumes utf-8 everywhere. I'll see what I can do to ignore this,

Thanks,

Alex

Reply via email to