解決Mysql:Incorrect string value:'xF 0x 9 Fx 8 Dx 83xF 0x 9 F...'for column


1、異常
java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x8D\x83\xF0\x9F...' for column 'nickname' at row 1
通常、Mysqlデータ符号化フォーマットは「utf-8」であり、漢字には十分である.Mysqlではutf 8が3バイトを占めていますが、3バイトは表情記号には足りず、4バイト必要です.このときutf 8を使用すると、'xF 0x 9 Fx 8 Dx 83xF 0x 9 F'という問題が発生します.
2、解決方法
utf 8 mb 4符号化はutf 8符号化のスーパーセットであり、utf 8と互換性があり、4バイトの表情文字を記憶することができる. 
2.1、フィールドに対して符号化フォーマットを修正する(推奨使用)
データベーステーブル対応フィールドでutf 8 mb 4の符号化フォーマットを変更します.コマンドの例は次のとおりです.
  ALTER TABLE insure_user CHANGE nickname nickname VARCHAR(64) CHARACTER SET utf8mb4 ; 
2.2、データベース全体で符号化フォーマットを修正する
データベーステーブルの符号化フォーマットを変更し、utf 8 mb 4に変更します.Mysqlプロファイルを変更するmy.cnf(windows下で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'