1. 程式人生 > >Incorrect string value: 'xF0x9Fx8CxB8'異常解決

Incorrect string value: 'xF0x9Fx8CxB8'異常解決

如果 sql 編碼集 remove rec nco pen 方法 存儲

異常原因:

    mysql中utf-8編碼的字符長度為3個字節,一般字符也是三個字節,所以一般情況是沒有問題的,但是emoji表情是四個字節,如果需要存儲emoji時使用utf-8編碼就會拋出此異常。在5.5.3版本之後mysql支持了存儲4個字節的utf8字符,字符集為utf8mb4,兼容utf-8的編碼集,此時使用此編碼是沒有問題的。

解決方案:  

    1.將數據庫,對應的表,對應的表字段都設置為utf8mb4編碼集即可。        

        1.修改表字段的字符集編碼

         ALTER TABLE table_name MODIFY colum_name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

        2.修改表的字符集編碼

        ALTER TABLE table_name CHARSET=utf8mb4;

        3.修改數據庫的字符集編碼

        SET DB_NAME utf8mb4;

    2.不存儲emoji表情數據

        1.添加依賴

<dependency>
    <groupId>com.vdurmont</groupId>
    <artifactId>emoji-java</artifactId>
    <version>4.0.0</version>
</dependency>

        2.使用方法過濾掉emoji數據

String string = EmojiParser.removeAllEmojis(param);

Incorrect string value: '\xF0\x9F\x8C\xB8'異常解決