MySQLに絵文字表現を保存する詳細な手順

MySQLに絵文字表現を保存する詳細な手順

原因: java.sql.SQLException: 列の文字列値が正しくありません: '\xF0\x9F\x94\xA5'。Mysql に絵文字式を保存するときにエラーが発生します。

iOS の絵文字 (emoji 顔文字) は、UTF8 でエンコードされていますが、1 文字が 4 バイトを占めますが、MySQL の UTF8 エンコードでは 3 バイトの文字しか保存できません。 MySQL 5.6 では、エンコーディングを utf8 のスーパーセットである utf8mb4 に設定できます。

1. MYSQLの文字セットを変更する

Mysql は文字エンコード セットを utf8mb4 に設定し、対応するデータベース、テーブル、フィールドも utf8mb4 に設定されます。既存のテーブルの utf8 エンコード セットを utf8mb4 に変更する場合は、データベース、テーブル、フィールドを一度設定して確認する必要があることに注意してください。データベースのみを変更した場合、対応するテーブルとフィールドは変更されません。テーブルを変更した場合も同様です。設定を変更した場合は、データベースを再起動する必要がある場合もあります。

文字セットサーバー=utf8mb4

2. JDBCをアップグレードする

下位バージョンの JDBC では、文字化けした文字、表現、さらには中国語の文字も表示されます。

以下は、JDBC バージョンの対応する状況の一部です。詳細は次のとおりです。JDBC バージョンは EMOJI をサポートしています。画像はインターネットで見つかりました。私の 5.1.6 テストでは、中国語と絵文字表現が正常に挿入され、表示されます。

3. サーバー構成 jdbc:mysql://xxx.xxx.xxx.xxx:3306/dbwww58com_chrcsm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true を継承します。接続アドレスの後のパラメータは UTF-8 に設定されているか、自動的に認識されます。そうでない場合は、太字部分を削除して、接続がサーバー構成を自動的に認識できるようにします。具体的な状況は JDBC のバージョンによって異なります。サーバー構成 jdbc:mysql://xxx.xxx.xxx.xxx:3306/dbwww58com_chrcsm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true を継承します。接続アドレスの後のパラメータは UTF-8 に設定されているか、自動的に認識されます。そうでない場合は、太字部分を削除して、接続がサーバー構成を自動的に認識できるようにします。具体的な状況は JDBC のバージョンによって異なります。

4. MYSQLのinit_connectパラメータを設定する

設定後、図 2 init_connect パラメータ クエリに示すように、「init_connect」などの変数を表示して確認できます。

5. エンコーディング セットはコードで設定されています。おそらく、JDBC のバージョンによるものだと思います。この方法を使用すると、挿入とクエリの両方が正常に実行できます。 connection.prepareStatement("set names utf8mb4").executeQuery();次に、connection.prepareStatement を通じて挿入します。おそらくJDBCのバージョンのせいか、コード内にエンコーディングセットが設定されています。この方法を使用すると、挿入とクエリの両方が正常に実行できます。 connection.prepareStatement("set names utf8mb4").executeQuery();次に、connection.prepareStatement を通じて挿入します。

以下もご興味があるかもしれません:
  • MySQL で絵文字表現を挿入できない理由と解決策
  • MySQL が絵文字表現を保存できない問題の解決策の分析
  • MySQL の絵文字テーブル ストレージのエラーに対処する方法 [エンコードを utf8mb4 に変更]
  • MySQL が絵文字表現を保存できない問題の解決策の分析
  • MySQL に絵文字表現を挿入できない問題の解決方法
  • Java バックエンド MySQL データベースを有効にして絵文字表現をサポートする方法
  • 絵文字を保存するための MySQL の設定方法に関するチュートリアル
  • MySQLに絵文字表現を挿入する方法

<<:  開発効率を向上させる 20 の JavaScript ヒント

>>:  Linux (CentOS7) に Tomcat をインストールし、Tomcat をスタートアップ項目として設定します (tomcat8 を例に挙げます)

推薦する

PC/Pad/Phoneデバイスに自動的に適応するCSSウェブページレスポンシブレイアウト

序文最近は、PC、iPad、携帯電話、スマートウォッチ、スマートテレビなど、さまざまなデバイスが存在...

MySQL 5.7.17無料インストール版のインストールと設定

MYSQLバージョン:MySQL Community Server 5.7.17、インストール不要版...

Docker で Harbor パブリック リポジトリを構築する方法の例

前回のブログ投稿では、レジストリのプライベート ウェアハウスについて説明しました。今日は、Harbo...

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...

Web ページでの Unicode 文字の使用の概要 (&#、\u など)

初期のコンピュータでは ASCII 文字しか使用できませんでしたが、コンピュータのアプリケーションの...

MySQL 5.7.17 圧縮パッケージのインストール不要の構成プロセス図

MySQL データベース管理ソフトウェアには、エンタープライズ エディションとコミュニティ エディシ...

Vue のクロスドメイン問題の処理と解決策の概要

ネットワークリクエストを送信すると、次の保存情報が表示されます。おめでとうございます。ドメインを越え...

ApacheのDjangoオンライン展開方法

環境: 1. Windows Server 2016 Datacenter 64 ビット 2. SQ...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...

Linux でスワップ領域を確認する 5 つのコマンドの概要

序文Linux では、スワップ パーティションとスワップ ファイルの 2 種類のスワップ領域を作成で...

Vue は Echarts をインポートして折れ線グラフを実現します

この記事では、VueでEchartsをインポートして線散布図を実現する具体的なコードを参考までに共有...

js キャンバスで円形の水のアニメーションを実現

この記事の例では、円形の水のアニメーションを実現するためのキャンバスの具体的なコードを参考までに共有...

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...