sql >> データベース >  >> RDS >> Mysql

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

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

    したがって、文字セット "utf8" / "utf8mb3"は、すべてのUnicodeコードポイントを格納することはできません。0x000から0xFFFFの範囲のみをサポートします。これは、 "基本多言語面 "。Unicodeエンコーディングの比較 も参照してください。 。

    これは(同じページの以前のバージョンで)MySQLドキュメント それについて言わなければならない:

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

    • BMP文字の場合、utf8 [/ utf8mb3]とutf8mb4のストレージ特性は同じです。つまり、同じコード値、同じエンコーディング、同じ長さです。

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

    したがって、絵文字 、「utf8mb4」を使用します。 実際に使用されている最も一般的な非BMPUnicode文字は何ですか?



    1. SQLServerで一重引用符をエスケープする

    2. Springのストアドプロシージャ-プロシージャから返される結果は常に空です

    3. PythonでOracleストアドプロシージャを呼び出す方法は?

    4. PERFMONを介したパフォーマンスカウンターの監視| SQLServerのパフォーマンスのトラブルシューティング-3