【ゆーてぃーえふはち】
UTF-8 とは?
最終更新:
💡 Unicodeの文字を、1〜4バイトの列で表す方式
Unicodeの符号位置を1〜4バイトで表す文字エンコーディング。A・é・あ・😀の具体例、見た目の文字数とバイト数の違い、MySQLのutf8mb4を解説します。
📌 このページのポイント
UTF-8って、文字をどう保存する仕組み?
8なのに、1バイトではないの?
日本語なら、全部3バイト?
文字化けしたら、UTF-8と指定すれば直る?
実際のバイト列と、読み取る側が想定する方式を合わせる必要がある。別の方式で保存したファイルにUTF-8と宣言するだけでは、内容は変換されない。保存・通信・読み込みの設定を確認するんだ。
MySQLではutf8ではなくutf8mb4が必要と言われたよ?
もっと詳しく知りたい人へ
UnicodeとUTF-8は同じ?
Unicodeは文字などの符号位置とその性質を定めます。UTF-8はそれらをバイト列で表す符号化形式です。同じUnicodeの符号位置を、UTF-16など別の形式で表すこともできます。
画面で同じように見える文字なら、バイト数も同じ?
そうとは限りません。例えばéを一つの符号位置U+00E9で表すとUTF-8で2バイト、eと結合するアクセントU+0301で表すと合計3バイトです。表示が同じように見えても、内部の符号位置の並びを確認する必要がある場合があります。
📖 おまけ:英語の意味
「Unicode Transformation Format — 8-bit」 = 8ビットの単位を使うUnicodeの符号化形式
💬 8は一つの符号単位が8ビットであることを表します。一つの符号位置が必ず1バイトになる、という意味ではありません。