溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么利用java存儲emoji表情

發(fā)布時間:2020-11-25 15:49:02 來源:億速云 閱讀:189 作者:Leah 欄目:編程語言

這篇文章給大家介紹怎么利用java存儲emoji表情,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1.問題產(chǎn)生情況

我遇到這個問題是做微信開發(fā)的時候有些有用的頭像用了微信的emoji表情,然而我的mysql數(shù)據(jù)庫用的編碼是utf8_general_ci,就是utf-8編碼,結(jié)果也就報錯誤了。

2.為什么會出現(xiàn)這種原因

因?yàn)閙ysql的utf8編碼的一個字符最多3個字節(jié),但是一個emoji表情為4個字節(jié),所以utf8不支持存儲emoji表情。但是utf8的超集utf8mb4一個字符最多能有4字節(jié),所以能支持emoji表情的存儲。

3.解決方法之一

把你的數(shù)據(jù)庫編碼集設(shè)置為utf8mb4,無論是數(shù)據(jù)庫還是表,還是字段。雖然會增加存儲,但是這個可以忽略不計。 

4.解決方法之二

有句話說得好,問題來了要么解決要么折中解決。如果有些原因你不能修改數(shù)據(jù)庫編碼之類的,你可以用java的一些插件,如emoji-java這種emoji表情插件對表情進(jìn)行特殊處理,然后保存或者去掉表情,這也是一種解決方法哦。

5.最后說點(diǎn)什么

通過對一個問題不同角度的思考,原來才發(fā)現(xiàn)世界同而不同,不同而同......

最后來段代碼:

import com.github.binarywang.java.emoji.EmojiConverter;


/**
 * 表情處理類
 * @author Administrator
 *
 */
public final class EmojiUtil {

  private static EmojiConverter emojiConverter = EmojiConverter.getInstance();
  
  /**
   * 將emojiStr轉(zhuǎn)為 帶有表情的字符
   * @param emojiStr
   * @return
   */
  public static String emojiConverterUnicodeStr(String emojiStr){
     String result = emojiConverter.toUnicode(emojiStr);
     return result;
  }
  
  /**
   * 帶有表情的字符串轉(zhuǎn)換為編碼
   * @param str
   * @return
   */
  public static String emojiConverterToAlias(String str){
    String result=emojiConverter.toAlias(str);
    return result;
  }
  
  
}

使用的框架是:

<dependency>
  <groupId>com.github.binarywang</groupId>
  <artifactId>java-emoji-converter</artifactId>
  <version>0.0.1</version>
</dependency>

關(guān)于怎么利用java存儲emoji表情就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI