不改數據庫字符編碼java
發現網上都說將數據庫編碼修改成utf8mb4,可是我用了這樣的方式,發現並無什麼用,,而後而後,就發現了下面的這種方式:數據庫
解決思路:將包含表情的字符先進行轉碼(表情轉字符),轉成普通字符存入數據庫中,在顯示到頁面的時候再進行一次轉碼(字符轉表情)app
爲了解決客戶說的這個要求我硬是搞了小半天,怎麼設置數據庫字符編碼都不對, 心疼本身三秒鐘,結果用下面的方式,分分鐘搞定 簡直爽歪歪maven
maven項目導入依賴ui
<dependency> <groupId>com.vdurmont</groupId> <artifactId>emoji-java</artifactId> <version>3.2.0</version> </dependency>
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:編碼