- 發生此問題的前提條件:
數據庫字符集爲utf8
,並不是utf8mb4
的。
emoji圖標插入utf8字符集的數據庫時就會出現下面的錯誤
utf8佔用3字節,而emoji佔用4字節,所以會報錯。
解決方案:
一、將數據庫的字符集改爲utf8mb4;
二、將emoji轉義後存儲:
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>4.0.0</version>
</dependency>
簡單使用方法如下:
String str = "An :grinning:awesome :smiley:string 😄with a few :wink:emojis!";
String result = EmojiParser.parseToUnicode(str);
System.out.println(result);
// Prints:
// "An 😀awesome 😃string 😄with a few 😉emojis!"
String str = "An 😀awesome 😃string with a few 😉emojis!";
String result = EmojiParser.parseToAliases(str);
System.out.println(result);
// Prints:
// "An :grinning:awesome :smiley:string with a few :wink:emojis!"