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