我正在尝试使用此 java 库将表情符号转换为 html 十六进制: https://github.com/vdurmont/emoji-java
(取自此处:http://mvnrepository.com/artifact/com.vdurmont/emoji-java/3.1.0)
emojiUtils = createObject( "java", "com.vdurmont.emoji.Emoji", "/componenti/jar/emoji-java-3.1.0.jar" );
var myTitle = privateFunctionGetTitle(); // for example
var cleanTitle = emojiUtils.getHtmlHexidecimal(myTitle);
但我收到此错误: 找不到 com.vdurmont.emoji.Emoji 的 getHtmlHexidecimal(string) 的匹配方法
我尝试(用于调试) writeDump(emojiUtils);
我做错了什么?
更新
我也尝试过这个:
EmojiParser = createObject( "java", "com.vdurmont.emoji.EmojiParser", "/componenti/jar/emoji-java-3.1.0.jar" );
writeDump(EmojiParser.parseToHtmlDecimal(titoloPagina));
但我得到:
lucee.runtime.exp.NativeException: Could not initialize class com.vdurmont.emoji.EmojiManager ... Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.vdurmont.emoji.EmojiManager ... 80 more
最佳答案
正如一些人所建议的,您没有像我编写它时计划的那样使用该库:)
您永远不必“创建对象”。如果您想获取表情符号的十六进制字符串,您应该遵循文档并执行以下操作:
Emoji wink = EmojiManager.getForAlias("wink");
String hexa = wink.getHexidecimal(); // Yes, "hexidecimal"... It's a typo that is fixed if you update to 3.1.1
如果您想将字符串中的所有 unicode 表情符号更改为其十六进制表示形式,您应该这样做:
String str = "An 😀awesome 😃string with a few 😉emojis!";
String resultHexadecimal = EmojiParser.parseToHtmlHexadecimal(str);
System.out.println(resultHexadecimal);
// Prints:
// "An 😀awesome 😃string with a few 😉emojis!"
在“集成”方面,您必须自己解决依赖关系和路径:
- 此行必须指向正确的文件:https://github.com/vdurmont/emoji-java/blob/master/src/main/java/com/vdurmont/emoji/EmojiManager.java#L18
- 您还必须为
org.json
获取正确的 jar
如果你使用包管理器(Maven、Gradle..),在我看来会更容易。
关于java - 使用 java 库和 Lucee 将表情符号转换为 html 十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938381/