##疑問
本記事の発端となったのは、『mysqlを扱う際に「utf8mb4」と「utf8」を使い分ける必要があるのはなぜか』という疑問です。
『ユーティーエフエイト』は、いくら素人でも少しは知っています。
一方で、「utf8mb4」は何それ美味しいのってなりました。名前を見る限り、『ユーティーエフエイト』の親戚っぽいな、程度です。
この時点で私は勘違いしているのですが、素人でも知っていると豪語した『ユーティーエフエイト』は「UTF-8」のことであり、「utf8」とは別物だそうです。
一瞬で墓穴を掘って埋まりました。
その辺りを含めて、「UTF-8」「utf8」「utf8mb4」の違いをメモしておこうと思います。
##「UTF-8」「utf-8」「utf-8mb4」の違い
まずは、簡単に図にまとめてみました。
文字コード | 特徴 |
---|---|
UTF-8 | 1文字を1〜4バイトで表現する |
utf8 | mysqlにおけるUTF-8。1文字を1〜3バイトで表現する |
utf8mb4 | mysqlにおけるUTF-8。1文字を1〜4バイトで表現する |
( ^ω^ ){「UTF-8」と「utf8」って同じじゃないんかーい
素人、無事死亡。
mysqlには、その歴史から「utf8」と「utf8mb4」という2種類の「UTF-8」が存在するようです。
「UTF-8」と「utf8」が同一であると勘違いしたままmysqlを使用すると、DBから文字を取り出したときに文字化けなどの問題が発生するようですね。
##参考
##過去の関連記事