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)告される場(chǎng)合は、Java コードのフィールドがデータベースのフィールド タイプまたはエンコーディングと一致していない可能性があります。この場(chǎng)合は、形式またはエンコーディングを統(tǒng)一してください。 ここでは主にデータベースに絵文字畫(huà)像を挿入する際のエラーと解決策を紹介します
解決策:
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 サーバーを使用している場(chǎng)合は、mysql 接続バージョンをアップグレードするか確認(rèn)します) 5.1.13 より高い、そうでない場(chǎng)合はまだ 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 (データベース接続が異常に中斷された場(chǎng)合、自動(dòng)的に再接続しますか? デフォルトは false) を追加することを強(qiáng)くお?jiǎng)幛幛筏蓼埂¥长螌傩预驘o(wú)視すると、キャッシュが発生する可能性があります。 DB の設(shè)定が読み込まれていないため、utf8mb4 文字セットを試行できません
2. アプリケーション層から解決します
URLEncoder.encode(nickName,?"utf-8");
データベースから取り出して表示の準(zhǔn)備ができたらデコードします。
URLDecoder.decode(nickname,?"utf-8");
アプリケーション層から問(wèn)題を解決するときは、オブジェクトゲッターで直接エンコードしないことをお?jiǎng)幛幛筏蓼箂etter メソッドは、オブジェクトを配置するときにニックネームをエンコードするため、これを參照すると、オブジェクトから getter メソッドを呼び出すことと同じになります。これは、上記の問(wèn)題が引き続き発生することを意味します。
mysql で保存された絵文字表現(xiàn) (WeChat 開(kāi)発ユーザーのニックネーム) については、PHP 中國(guó)語(yǔ) Web サイトを參照してください。

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

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

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

Clothoff.io
AI衣類(lèi)リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

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

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

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

ホットトピック









