不改数据库字符编码
发现网上都说将数据库编码修改为utf8mb4,但是我用了这样的方式,发现并没有什么用,,然后然后,就发现了下面的这种方式:
解决思路:将包含表情的字符先进行转码(表情转字符),转成普通字符存入数据库中,在显示到页面的时候再进行一次转码(字符转表情)
为了解决客户说的这个要求我硬是搞了小半天,怎么设置数据库字符编码都不对, 心疼自己三秒钟,结果用下面的方式,分分钟搞定 简直爽歪歪
maven项目导入依赖
com.vdurmont
emoji-java
3.2.0
调用方式:
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: