LoginSignup
13
17

More than 3 years have passed since last update.

「UTF-8」「utf8」「utf8mb4」は何が違うの

Posted at

疑問

本記事の発端となったのは、『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から文字を取り出したときに文字化けなどの問題が発生するようですね。

参考

過去の関連記事

13
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
17