In MySQL the utf8 character set does not fully support the utf-8 standard. utf8 in MySQL is 3 bytes long while the utf-8 standard supports up to 4 bytes. This leads to a situation where db queries attempting to insert valid utf-8 4 byte characters will fail.
MySQL has a character set that does fully support utf-8 called utf8mb4. See:
1. Current indexes will not work when switching from utf8 to utf8mb4 due to the increased length in bytes. This exceeds the limits of the innodb engine.
2. MySQL docs warn about potential performance issues due to the increased byte length.
3. Attempting to store native 4-byte utf-8 characters is currently not possible in our db setup. We do sometimes use escaped character sequences (which sometimes breaks) to work around this problem.