MySQL の utf8mb4 と utf8 文字セットの違いは何ですか? 質問する

MySQL の utf8mb4 と utf8 文字セットの違いは何ですか? 質問する

MySQLutf8mb4のとutf8の文字セットの違いは何ですか?

ASCIIUTF-8UTF-16UTF-32エンコーディングについては既に知っていますが、 MySQL サーバーutf8mb4で定義されている他のエンコーディング タイプとのエンコーディング グループの違いが何なのかを知りたいです。

utf8mb4ではなくを使用することで、何か特別な利点や提案はありますかutf8?

ベストアンサー1

UTF-8可変長エンコーディングです。UTF-8 の場合、1 つのコード ポイントを格納するには 1 ~ 4 バイトが必要です。ただし、MySQL の「utf8」(「utf8mb3」の別名) と呼ばれるエンコーディングでは、コード ポイントごとに最大 3 バイトしか格納できません。

そのため、文字セット「utf8」/「utf8mb3」はすべてのUnicodeコードポイントを保存することはできません。0x000から0xFFFFまでの範囲のみをサポートしており、これは「基本的な多言語面「」も参照Unicode エンコーディングの比較

これは(同じページの以前のバージョン)MySQLドキュメントそれについてこう言っています。

utf8[/utf8mb3] という文字セットは、1 文字あたり最大 3 バイトを使用し、BMP 文字のみを含みます。MySQL 5.5.3 以降では、utf8mb4 文字セットは 1 文字あたり最大 4 バイトを使用し、補助文字をサポートします。

  • BMP 文字の場合、utf8[/utf8mb3] と utf8mb4 は同一の保存特性を持ちます。つまり、同じコード値、同じエンコーディング、同じ長さです。

  • 補助文字の場合、utf8[/utf8mb3] では文字をまったく格納できませんが、utf8mb4 では格納に 4 バイトが必要です。utf8[/utf8mb3] では文字をまったく格納できないため、utf8[/utf8mb3] 列には補助文字が存在せず、古いバージョンの MySQL から utf8[/utf8mb3] データをアップグレードするときに文字の変換やデータの損失を心配する必要はありません。

したがって、列にBMP外の文字を保存できるようにしたい場合(通常はそうしたいはずです)、例えば絵文字、"utf8mb4"を使用してください。実際に使用されている最も一般的な非 BMP Unicode 文字は何ですか?

おすすめ記事