MySQLの挿入絵文字表現エラーのSQLException:2つのソリューションの不正な文字列値

:からの抜粋https://blog.csdn.net/dmw412724/article/details/81119325

 

理由:mysqlのUTF-8サポートは3つしか記憶域のバイト、および一般的な文字は3バイトですが、絵文字式が4バイトであるので、ストアはできません。

最初のシナリオ:データベース・キャラクタ・セットのテーブルを変更します

  MySQLは、ストレージUTF8文字の4バイトの賛成5.5.3バージョンの後に、この問題を解決するために、文字セットutf8mb4。これはwindowsX64とwindowsX86との間の差に相当しており、64ビット、32ビット、と互換性があり、彼はutf8mb4アクセスUTF8は問題ありませんと述べました。

  それは、フィールドと表情豊かな方法で行わutf8mb4にこのフィールドを設定する必要があります

 ALTER  TABLEは、 MODIFY colum_name TABLE_NAME   VARCHAR100CHARACTERの SETの utf8mb4 COLLATE utf8mb4_unicode_ciを

  しかし、あなたはまた、テーブルの下に文字セットを設定する必要があります

 ALTER  TABLE table_nameのCHARSET = utf8mb4。

  もちろん、あなたも、このデータベースutf8mb4ああを設定する必要があるかもしれません

 SET NAMESのutf8mb4

  次に起動します。

  しかし、ローカルサーバーとデータベースの接続はどのように行うには?

jdbc.url = JDBCます。mysql:// localhostを:?3306 / AAA useUnicode =真&characterEncoding = UTF-8

  ここでは?このUTF-8 utf8mb4それを変更したい
  らしく、ああ、データベース駆動型のこれらのコードには変更がうまくいかない、何もします、ああ変更することはできません変更することはできません、それはのためのJDBCドライバのため、互換性があります。
  何もないので、 、テストはそれを保存します。
  私はちょうど現象を知って、原理を知りません。
  それでは、二つの現象が発生します
  最初:あなたは式を格納することができます。
  第二:不明な理由は、あなたはまだ表現を格納することはできません。
  第二例の学生のために、私はあなたに伝えたいあなたは、これらのフィールドを操作する前に行くときということです式を追加する必要があり、このSQL文を挿入します。

SET NAMESのutf8mb4

  それはすることができます。

  次は何の問題もないだろう前に、それぞれ挿入することをああああ変更が設定されています。

 

二番目のオプション:Javaコードによるフィルタの絵文字式は、データベースを再ロード

  もちろん、もっと簡単な方法があり、その後、さらにいくつかの段落よりも、私は、どのようなものかいない変更、我々は別の角度から問題を見たとき、実際には、我々は、預金の時に見にフィルタリング、その後の心配はありませんバラエティ番組と互換性の種の多様性を取ります。

  

1 < -のhttps:// mvnrepository.com/artifact/com.vdurmont/emoji-java - > 
2 <依存>
 3      <groupIdを> com.vdurmont </ groupIdを>
 4      <たartifactId>絵文字-javaの</たartifactId >
 5      <バージョン> 4.0.0 </バージョン>
 6 </依存>

  このバッグは、この方法があります

1文字列= EmojiParser.removeAllEmojis(PARAM)。

  [OK]をクリックします。これは手にすることができます。

おすすめ

転載: www.cnblogs.com/nemowang1996/p/11910342.html