java.sql.SQLException:?Incorrect?string?value:?'\xF0\x9F\x92\x94'?for?colum?n?'name'?at?row?1?at?com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)? at?com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)? at?com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)? at?com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)? at?com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)? at?com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)? at?com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)? at?com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)上記のエラーが報(bào)告される場合は、Java コードのフィールドがデータベースのフィールド タイプまたはエンコーディングと一致していない可能性があります。この場合は、形式またはエンコーディングを統(tǒng)一してください。 ここでは主にデータベースに絵文字畫像を挿入する際のエラーと解決策を紹介します
解決策:
1. データベースレベルで解決します (MySQL は utf8mb4 バージョン 5.5.3 以降をサポートしているため、新しいバージョンにアップグレードする必要があります)
注:
(1. データベース、テーブル、列の文字セットを変更します
)
ALTER?DATABASE?database_name?CHARACTER?SET?=?utf8mb4?COLLATE?=?utf8mb4_unicode_ci;ALTER?TABLE?table_name?CONVERT?TO?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;ALTER?TABLE?table_name?CHANGE?column_name?VARCHAR(191)?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;
(2. mysql 設(shè)定ファイル my.cnf を変更します (ウィンドウは my.ini)
[client] default-character-set?=?utf8mb4 [mysql] default-character-set?=?utf8mb4 [mysqld] character-set-client-handshake?=?FALSE character-set-server?=?utf8mb4 collation-server?=?utf8mb4_unicode_ci init_connect='SET?NAMES?utf8mb4'
(3. Java サーバーを使用している場合は、mysql 接続バージョンをアップグレードするか確認(rèn)します) 5.1.13 より高い、そうでない場合はまだ utf8mb4 を試すことができません
(4. サーバー側(cè)の DB 設(shè)定ファイル
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE jdbc.username=root jdbc.password=password
mysql-connector をアップグレードすると、characterEncoding=utf8 が自動(dòng)的に認(rèn)識(shí)されますutf8mb4 (オリジナルの utf8 と互換性あり)、および
autoReconnection (データベース接続が異常に中斷された場合、自動(dòng)的に再接続しますか? デフォルトは false) を追加することを強(qiáng)くお?jiǎng)幛幛筏蓼?。この屬性を無視すると、キャッシュが発生する可能性があります。 DB の設(shè)定が読み込まれていないため、utf8mb4 文字セットを試行できません
2. アプリケーション層から解決します
URLEncoder.encode(nickName,?"utf-8");
データベースから取り出して表示の準(zhǔn)備ができたらデコードします。
URLDecoder.decode(nickname,?"utf-8");
アプリケーション層から問題を解決するときは、オブジェクトゲッターで直接エンコードしないことをお?jiǎng)幛幛筏蓼箂etter メソッドは、オブジェクトを配置するときにニックネームをエンコードするため、これを參照すると、オブジェクトから getter メソッドを呼び出すことと同じになります。これは、上記の問題が引き続き発生することを意味します。
mysql で保存された絵文字表現(xiàn) (WeChat 開発ユーザーのニックネーム) については、PHP 中國語 Web サイトを參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









