[解決済み] MySQLのutf8mb4とutf8 charsetsの違いは何ですか?
質問
とはどのような違いがあるのでしょうか?
utf8mb4
と
utf8
の文字セット
MySQL
?
については既に知っています。
ASCII
,
UTF-8
,
UTF-16
と
UTF-32
のエンコーディングです。
の違いは何なのか、気になるところです。
utf8mb4
で定義された他のエンコーディング・タイプとの
MySQLサーバー
.
を使うことで、何か特別なメリットや提案がありますか?
utf8mb4
よりも
utf8
?
解決方法は?
UTF-8 は可変長エンコーディングです。UTF-8の場合、1つのコードポイントを格納するのに1〜4バイトが必要ということです。しかし、MySQL の "utf8" ("utf8mb3" の別名) というエンコーディングは、1 つのコードポイントにつき最大 3 バイトしか保存しません。
つまり、文字セット "utf8"/"utf8mb3" はすべての Unicode コードポイントを格納することができません。 基本多言語面 となります。 参照 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文字で最も一般的なものは何ですか? .
関連
-
mysqlにおけるvarcharの日付比較とソートの実装
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
群関数解の無効な使用
-
[解決済み] なぜ SQLAlchemy の count() は生のクエリよりずっと遅いのでしょうか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] utf8_general_ciとutf8_unicode_ciの違いは何ですか?
-
[解決済み] UTF-8とBOMなしUTF-8の違いは何ですか?
-
[解決済み] UTF-8とUnicodeの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
SQLException。オペランドは1列でなければなりません。
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
Mysqlの使用中に発生したエラーの一部
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?
-
[解決済み] MySQLのVARCHARとTEXTの違い【重複】について
-
[解決済み】テーブルのデフォルト照合順序を変更する方法は?
-
[解決済み] 実際に使われている非BMPのUnicode文字で最も多いものは何ですか?[クローズド]