MySQL’s utf8 is broken
MySQL really made a mess here. What they are calling
utf8 really isn’t. Hidden away in the MySQL manual we can read this:
“The character set named utf8 uses a maximum of three bytes per character and contains only BMP characters.”
Loosely translated: MySQL utf8 is broken. Don’t use it.