序文 今日、オープンソース プロジェクトのフィードバック フォームを設計していたところ、絵文字表現を挿入できないという問題に遭遇しました。オンラインで多くの解決策を探しましたが、答えはさまざまで、うまくいくものは見つかりませんでした。 苦労の末、ようやく絵文字表現を挿入することができました。この記事では実装のプロセスを紹介します。興味のある開発者の方はぜひ読んでみてください。 前面に書かれた 私のサーバーは Mac システムで、MySQL は brew を使用してインストールされています。実際の状況に応じて、Windows/Linux では設定ファイルの場所が若干異なる場合があります。 まずエラーメッセージを見てみましょう: chat_system> UPDATE chat_system.feedback t SET t.comments = 'フィードバック情報テスト😂' WHERE t.id = 1 [2020-12-01 21:36:08] [HY000][1366] 行 1 の列 'comments' の文字列値 '\xF0\x9F\x98\x82' が正しくありません [2020-12-01 21:36:08] [HY000][1366] 行 1 の列 'comments' の文字列値 '\xF0\x9F\x98\x82' が正しくありません 実装のアイデア データベースはデフォルトで UTF-8 エンコード形式を使用しているため、通常の文字列は 3 バイト、絵文字は 4 バイトを占めます。現時点では、UTF-8 では不十分です。utf8mb4 文字セットを使用すると、この問題を解決できます。
したがって、私たちがしなければならないことは次のとおりです。
実装プロセス MySQL が設定を読み取るデフォルトの順序は、/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf です。これらの設定ファイルが対応するディレクトリに存在しない場合は、新しいファイルを作成する必要があります。
[mysqld] 文字セットサーバー = utf8mb4 照合サーバー = utf8mb4_unicode_ci init_connect = '名前をutf8mb4に設定' 文字セットクライアントハンドシェイク = false [クライアント] デフォルトの文字セット=utf8mb4 [mysql] デフォルトの文字セット=utf8mb4
# データベースの文字セット エンコーディングを設定します。chat_system は実際の状況に応じたデータベース名です。ALTER DATABASE chat_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# データベース テーブルの文字セット エンコーディングを設定します。chat_system.feedback_comment_reply は、データベース内の対応するテーブル名です。ALTER TABLE chat_system.feedback_comment_reply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 上記の操作が完了したら、変更が成功したかどうかを確認しましょう。MySQL にログインし、次の SQL ステートメントを実行します。 SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%'; 従属情報が表示されれば修正が完了したことになります。 テストケース 絵文字表現を挿入してテストしてみましょう。 UPDATE chat_system.feedback t SET t.comments = 'フィードバック情報テスト😂' WHERE t.id = 1; 以下に示すように、エラーは報告されず、挿入は成功します。 dataGrap を使用して、データベース テーブルのデータを表示します。以下に示すように、? が表示されています。これは、ソフトウェアがデータを認識できないことを意味します。 論理的に言えば、挿入は成功するはずです。Postman リクエスト インターフェイスで試してみると、正常に表示されます 😄。 上記は、MySQL に Emoji 絵文字を挿入する方法の詳細です。MySQL に Emoji 絵文字を挿入する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明
画像の周囲にテキストを折り返すとは何ですか?これは次の図の効果です。 エフェクトのCSSコードはここ...
この記事では、例を使用して、MySQL クエリ条件の一般的な使用方法を説明します。ご参考までに、詳細...
データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...
目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...
まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...
目次1. MySQL msiバージョンをダウンロードする2. インストール3. 環境変数を設定する1...
シナリオ: docker で tomcat を起動すると (Alibaba Cloud からダウンロ...
この記事は主にJavaScriptを使用してWeb計算機を実現する効果を記録し、参考として掲載してい...
ブロック引用の定義と使用法<blockquote> タグは引用ブロックを定義します。 &...
MySQLはトリガーを使用してデータベース内のテーブルの行制限を解決します。詳細な説明と例最近のプロ...
CMakeをインストール sudo apt をインストール cmake この方法はインストールが簡単...
目次変数意味があり発音しやすい変数名を使用する同じ型の変数には同じ語彙を使用する検索可能な名前を使用...
この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...
導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...
ウェブサイトやサービスのパフォーマンスは、データベースの設計(適切な言語開発フレームワークを選択した...