如何解码 android 中的 json 表情符号
how to decode json emoji in android
我用编译'org.apache.commons:commons-lang3:3.4'没用
我的 json 表情符号是这样的:
|ud83d|ude00
|ud83d|ude01
|ud83d|ude02
|ud83d|ude03
|ud83d|ude04
|ud83d|ude05
|ud83d|ude06
|ud83d|ude09
|ud83d|ude0a
|ud83d|ude0b
|ud83d|ude0e
|ud83d|ude0d
|ud83d|ude18
|ud83d|ude17
我找不到任何办法。
我刚找到 >> https://www.phpclasses.org/browse/file/67374.html
但我不想通过代码
如何转换成这种格式
正如评论中所建议的,您应该使用优秀的 emoji-java 库。
首先添加所需的依赖项 - 例如,Maven 看起来像:
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>3.1.3</version>
</dependency>
然后,您应该更改 json,因为表情符号使用反斜杠 (\
) 而不是竖线 (|
)。
之后你可以像这样解析文件 (Java 8):
List<String> collect = Files.lines(Paths.get("filePath"), StandardCharsets.UTF_8)
.map(StringEscapeUtils::unescapeJava)
.collect(Collectors.toList());
collect.forEach(s -> System.out.println(EmojiManager.getByUnicode(s).getUnicode()));
Java 7:
try (BufferedReader br = new BufferedReader(new FileReader("C:\untitled\src\main\resources\emoji.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(EmojiManager.getByUnicode(StringEscapeUtils.unescapeJava(line)).getUnicode());
}
} catch (IOException e) {
// error handling
}
请注意,您应该使用 StringEscapeUtils.unescapeJava
以便从文件中检索正确的值。
我用编译'org.apache.commons:commons-lang3:3.4'没用
我的 json 表情符号是这样的:
|ud83d|ude00
|ud83d|ude01
|ud83d|ude02
|ud83d|ude03
|ud83d|ude04
|ud83d|ude05
|ud83d|ude06
|ud83d|ude09
|ud83d|ude0a
|ud83d|ude0b
|ud83d|ude0e
|ud83d|ude0d
|ud83d|ude18
|ud83d|ude17
我找不到任何办法。 我刚找到 >> https://www.phpclasses.org/browse/file/67374.html 但我不想通过代码
如何转换成这种格式正如评论中所建议的,您应该使用优秀的 emoji-java 库。 首先添加所需的依赖项 - 例如,Maven 看起来像:
<dependency>
<groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId>
<version>3.1.3</version>
</dependency>
然后,您应该更改 json,因为表情符号使用反斜杠 (\
) 而不是竖线 (|
)。
之后你可以像这样解析文件 (Java 8):
List<String> collect = Files.lines(Paths.get("filePath"), StandardCharsets.UTF_8)
.map(StringEscapeUtils::unescapeJava)
.collect(Collectors.toList());
collect.forEach(s -> System.out.println(EmojiManager.getByUnicode(s).getUnicode()));
Java 7:
try (BufferedReader br = new BufferedReader(new FileReader("C:\untitled\src\main\resources\emoji.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(EmojiManager.getByUnicode(StringEscapeUtils.unescapeJava(line)).getUnicode());
}
} catch (IOException e) {
// error handling
}
请注意,您应该使用 StringEscapeUtils.unescapeJava
以便从文件中检索正确的值。