MySQL表情存儲報錯的美妙解法 \xF0\x9F\x8C\x9

不改數據庫字符編碼java

發現網上都說將數據庫編碼修改成utf8mb4,可是我用了這樣的方式,發現並無什麼用,,而後而後,就發現了下面的這種方式:數據庫

解決思路:將包含表情的字符先進行轉碼(表情轉字符),轉成普通字符存入數據庫中,在顯示到頁面的時候再進行一次轉碼(字符轉表情)app

爲了解決客戶說的這個要求我硬是搞了小半天,怎麼設置數據庫字符編碼都不對, 心疼本身三秒鐘,結果用下面的方式,分分鐘搞定 簡直爽歪歪maven

maven項目導入依賴ui

<dependency>
     <groupId>com.vdurmont</groupId>
     <artifactId>emoji-java</artifactId>
    <version>3.2.0</version>
</dependency>
  • 調用方式:
  • EmojiParser.parseToAliases(「nickname」); 將表情符號轉爲字符
  • EmojiParser.parseToUnicode(「nickname」); 將字符轉爲表情符號

 

String nick = EmojiParser.parseToAliases(nickname);
String nick = EmojiParser.parseToUnicode(nickname);
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value="建立評論管理")
public ResponseMessage<?> create(@ApiParam(name="評論管理對象") CmsCommentEntity cmsComment, UriComponentsBuilder uriBuilder) {
   //保存
   try{
      //存儲前先將表情轉成字符
      cmsComment.setContent(EmojiParser.parseToAliases(cmsComment.getContent()));
      cmsCommentService.save(cmsComment);
   } catch (Exception e) {
      e.printStackTrace();
      return Result.error("評論管理信息保存失敗");
   }
   //顯示的時候將字符迴轉成表情符
   cmsComment.setContent(EmojiParser.parseToUnicode(cmsComment.getContent()));
   return Result.success(cmsComment);
}

表情轉碼後在數據庫中是這樣的:哦哦哦:blush::blush::blush:編碼

相關文章
相關標籤/搜索