2种方式实现:
注意:如果发现运行时java.lang.NoClassDefFoundError:异常就是缺少了jar包。添加对应的jar包就可以。
一、emoji-java-4.0.0.jar实现
com.vdurmont
emoji-java
4.0.0
org.json
json
20180813
代码:
public static voidmain(String args[]){
String str= "苍天厚土\uD83D\uDE01 \uD83D\uDC36 \uD83E\uDD14 \uD83D\uDC7B \uD83D\uDE92";
System.out.println("原始字符为:\n" +str);
System.out.println("to aliases 之后:");
System.out.println(EmojiParser.parseToAliases(str));
System.out.println(EmojiParser.parseToAliases(str, EmojiParser.FitzpatrickAction.PARSE));
System.out.println(EmojiParser.parseToAliases(str, EmojiParser.FitzpatrickAction.REMOVE));
System.out.println(EmojiParser.parseToAliases(str, EmojiParser.FitzpatrickAction.IGNORE));
System.out.println(EmojiParser.parseToAliases(str, EmojiParser.FitzpatrickAction.IGNORE));
System.out.println(EmojiParser.parseToUnicode(str));
}
运行结果:
原始字符为:
苍天厚土? ? ? ? ?
to aliases 之后:
苍天厚土:grin: :dog: :thinking: :ghost: :fire_engine:
苍天厚土:grin: :dog: :thinking: :ghost: :fire_engine:
苍天厚土:grin: :dog: :thinking: :ghost: :fire_engine:
苍天厚土:grin: :dog: :thinking: :ghost: :fire_engine:
苍天厚土:grin: :dog: :thinking: :ghost: :fire_engine:
苍天厚土? ? ? ? ?
二、java-emoji-converter-0.1.1.jar方式
com.thoughtworks.xstream
xstream
com.github.binarywang
java-emoji-converter
0.1.1
代码:
public static voidmain(String args[]){
String str= "苍天厚土\uD83D\uDE01 \uD83D\uDC36 \uD83E\uDD14 \uD83D\uDC7B \uD83D\uDE92";
EmojiConverter emojiConverter=EmojiConverter.getInstance();
System.out.println("原始字符为:\n" +str);
System.out.println("to aliases 之后:");
System.out.println(emojiConverter.toAlias(str));
System.out.println(emojiConverter.toUnicode(str));
}
运行结果:
原始字符为:
苍天厚土? ? ? ? ?
to aliases 之后:
苍天厚土:grin: :dog: :thinking: :ghost: :fire_engine:
苍天厚土? ? ? ? ?
备注:
经过测试,神奇的事情发生了,使用方法一加密,方法二可以正常解密。使用方法二加密,方法一可以正常解密。应该是2个jar包底层数据一致吧。