Well, that's something I don't want to have to go through again in a hurry!
Yesterday evening, our web host decided to upgrade the MySQL server used by the site – without warning. My database, however, has been around since 2008 (it was originally created by WordPress) and there are known issues with encoding for WordPress databases from before 2010.
The emoji in the archive got turned into question marks years ago but I thought I'd gotten things sorted more recently. Apparently not! The upgrade caused the encoding to change to utf8mb3 (3-Byte UTF-8 Unicode Encoding) which doesn't support 'supplementary characters' including emoji. While I had changed encoding and collation it seems the underlying character set was still utf8.
Bad news.
Sadly, the only way round it has been a full, manual find & replace and reimport of the backup .sql file. Ensuring the character set and collation were specified properly was the easy bit. After that I have had to locate, identify (mainly with ChatGPT) and replace all the messed up characters like 🔎 and âŒ¨ï¸ – if I never see a text representation of an emoji again it will be too soon. 😅
On top of that, it caused an issue with /reader so I had to clear the table of feed items and grab everything again from all feeds.
There is probably still some stuff in there somewhere that's not right (maybe in comments) but most things should be resolved. If you spot anthing please let me know.