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.

This is related to https://gitlab.gnome.org/GNOME/pygobject/-/issues/327 .
I may be wrong by I do not see any obvious way to fix this in lazygal.

Alex

Reply via email to