MySQL UTF-8 エンコーディング MySQL は 2003 年のバージョン 4.1 から UTF-8 をサポートしていますが、現在普及している UTF-8 標準 (RFC 3629) はそれ以降に規定されました。このため、MySQL の UTF-8 は日常の開発における UTF-8 と一致しておらず、いくつかの問題が発生します。 MySQL の UTF-8 は 1 文字あたり最大 3 バイトしかサポートしませんが、実際の UTF-8 は 1 文字あたり最大 4 バイトをサポートします。 問題の再現 データベーステーブルは次のとおりです: utf8 エンコード データベースにレコードを追加します。 @テスト パブリックボイドテスト挿入() { ユーザー user = new User(); ユーザー名を設定します。 ユーザー.setPassword("123456"); userRepo.save(ユーザー); } 以下はコードの一部です。理解できなくても問題ありません。以下は、ユーザー テーブルにレコードを挿入するコードです。ユーザー名は\uD83D\uDE00です。 実際、\uD83D\uDE00 は絵文字です。 MySQL の utf8 文字セットは 3 バイト UTF-8 エンコーディングの Unicode 範囲のみをサポートし、絵文字は 4 バイト エンコーディング部分に属するため、プログラムは期待どおりに実行するとエラーを報告します。次のコードを実行します: 予想通り、エラーが報告されました。 問題を解決する MySQL の UTF-8 には欠陥があるにもかかわらず、MySQL (mariadb を含む) 関係者はこのバグを修正せず、代わりに 2010 年に再リリースされた「utf8mb4」を通じて本物の UTF-8 をサポートしました。したがって、この問題を解決するには、MySQL データベースを utf8mb4 文字セットに設定するしかありません。 要約する この問題は、データを保存するときに絵文字表現が保存されたために発見されました。実は、MySQLを使い始めたときにutf8mb4を発見したのですが、UTF8とUTF8MB4の違いがわかりませんでした。この教訓を踏まえて、今後MySQLを使用するときは文字セットをutf8mb4に設定することにします。 さて、今回の記事は以上です。この記事の内容が皆さんの勉強や仕事に少しでも参考になれば幸いです。123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: WeChat アプレット ピッカー マルチ列セレクター (モード = multiSelector)
MySQL ストレージ エンジンの概要ストレージ エンジンとは何ですか? MySQL のデータは、さ...
コードをコピーコードは次のとおりです。 li {幅:300px; 高さ:23px; 行の高さ:24p...
多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...
1. コンセプトこれらはすべて Element の属性であり、要素の幅を示します。 Element....
メモリリークとは何ですか?メモリ リークとは、新しいメモリが作成されたが、解放またはガベージ コレ...
MySQL は、コミュニティ エディション (コミュニティ サーバー) とエンタープライズ エディシ...
--1. mysql用の新しいグループとユーザーを作成する # ユーザー追加 -M -s /sbin...
今日は、CSS3 の transition-delay 属性のデフォルト値 0 に単位がないのは無効...
CSS ファイルでは、背景を使用する、つまり背景画像を追加する必要がある場合があります。これは通常、...
MySQL のインストールは、インストール バージョンと解凍バージョンに分かれています。インストール...
1. 中国語入力方法を設定する 2. ダブルスペルモードを設定する 3. 注意事項20.04 で S...
目次1. 魔法の拡張演算子1. 配列をコピーする2. 配列を結合する3. オブジェクトを展開する2....
1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...
CSS の float プロパティを正しく使用することは、カバーすべき内容が多く、ブラウザの互換性の...
db2 データベースをホストマシンに直接インストールするのは面倒で、ユーザーや権限を巻き込むのも不便...