2、mysql解决表情乱码和utf8保存已知字段的表情.
前言
Github:https://github.com/HealerJean
前面的一遍文档已经介绍了怎么存储Emoji,但是我们会发现存到库里是乱码的形式,但是乱码又能怎么样的,能用不就行了。但是我们非让他不显示乱码怎么办呢,有解决方式。这里的解决方式不仅针对utfbm4针对utf8也是管用的,但是是针对特定的字段,处理起来比较繁琐,在明确知道已经有Emoji中是可以的,但是对于很多地方我们不知道有没有这个Emoji, 不建议使用这种方式
好了,废话不多说了
1、引入依赖
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>3.2.0</version>
</dependency>
2、表情string转化
原理:😁我可以存储为,😭存储为
,等等,可以这样映射起来。
• EmojiParser.parseToAliases(string); 将表情符号转为字符
• EmojiParser.parseToUnicode(string); 将字符转为表情符号
@RequestMapping("/add/content")
public ResponseEntity insertContent(@RequestBody Content content) {
String title = content.getTitle();
String titles = EmojiParser.parseToAliases(title);
content.setTitle(titles);
Integer integer = emojiMapper.insertContent(content);
if (integer == 1) {
return ResponseEntity.ok().build();
}
return ResponseEntity.badRequest().build();
}
@RequestMapping("/get/{id}")
public Content getById(@PathVariable("id") Integer id) {
Content content = emojiMapper.selectById(id);
String title = EmojiParser.parseToUnicode(content.getTitle());
content.setTitle(title);
if (content != null) {
return content;
}
return null;
}
4、数据库中的存储