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)
目次アニメーションプレビューその他のUIライブラリ始めるコンポーネントディレクトリ構造トーストおおよ...
1. 公式サイトにアクセスしてインストールパッケージをダウンロードしますダウンロードリンク: クリッ...
達成すべき効果: 必要なもの1枚、2枚、3枚とスタイルが異なります。子要素の判定はjsで完結できます...
多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...
この記事では、Excelテーブルプラグインを導入するVueの具体的なコードを参考までに共有します。具...
問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...
ボックスモデルの計算<br />マージン + ボーダー + パディング + コンテンツC...
HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...
目次1. 需要方法1方法2方法3 2. 実装3. 問題解決質問1: トークンの複数回の更新を防ぐ方法...
1. MySQLデータベースのエンコーディングを確認する mysql -u ユーザー名 -p パスワ...
目次React Hooks に基づく状態共有の実装ユーザーエクスペリエンスこの記事では、主に Rea...
まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...
一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...
この記事では、MySQL のスケジュールされたデータベース バックアップ操作の例について説明します。...
目次1. 本番環境と開発環境を切り替える最初の方法: .envファイルを設定する2番目の方法2. フ...