Utf8_general_ci or utf8mb4 or...?
localization, utf-16, utf-32, utf-8, utf8mb4
Solution
MySQL's `utf32` and `utf8mb4` (as well as standard UTF-8) can directly store any character specified by Unicode; the former is fixed size at 4 bytes per character whereas the latter is between 1 and 4 bytes per character.
`utf8mb3` and the original `utf8` can only store the first 65,536 codepoints, which will cover CJVK (Chinese, Japanese, Vietnam, Korean), and use 1 to 3 bytes per character.
`utf16` uses 2 bytes for the first 65,536 codepoints, and 4 bytes for everything else.
As for fonts, that's strictly a visual thing.
"The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)"
See also MySQL documentation for Unicode support.
Problem
utf16 or utf32? I'm trying to store content in a lot of languages. Some of the languages use double-wide fonts (for example, Japanese fonts are frequently twice as wide as English fonts). I'm not sure which kind of database I should be using. Any information about the differences between these four charsets...