my company uses Openfire (With the latest Mysql as a database) extensively and we also use the monitoring plugin to retrieve and sync chat sessions across android and iOS devices.
We recently ran into a problem. When a user sends a message containing complex emoticons, such as iOS emojis which often requires the full 4 bytes of utf8 to be mapped correctly, the recipient at first correctly receives the emoticons (So we know it is not an inherent problem in the xml stream). However, the monitoring plugin fails to correctly save them to the database, resulting in a bunch of “?” being saved instead.
The issue can be reproduced by sending emojis from an iOS device and trying to retrieve them through the monitoring plugin.
We are using MySQL 5.5.4 as database, and from initial research the issue might be due to the MySQL implementation of the utf8 charset. Apparently MySQL only maps correctly utf8 characters requiring up to 3 bytes. The suggested solution appears to be to change charsets to utf8mb4. See link https://mathiasbynens.be/notes/mysql-utf8mb4 .
We have not solved the issue yet. Can anyone suggest a solution or is there an easy work around?