It seems that your string got double-encoded UTF-8, because "Künstlerhaus in München" is actually UTF-8, if you decode UTF-8 again, you should get the correct string.
Keep in mind that you should not satisfy this result. There are combinations in which a binary-UTF-8 encoded string cannot be simply decoded by performing double-UTF-8 decoding. Some encoding combinations are irreversible. Therefore, in your situation, I would advise you to find out why the string received UTF-8 double encoding, first of all, it is likely that ical is stored in the wrong encoding on the hard disk, or libical uses the wrong character set to access this, or if you get ical from the server, perhaps the encoding there is incorrect for text / ical, etc. etc.
source share