首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中解码json emoji

如何在android中解码json emoji
EN

Stack Overflow用户
提问于 2017-01-26 17:42:15
回答 1查看 1.4K关注 0票数 3

我使用了编译'org.apache.commons:commons-lang3:3.4‘不起作用

我的json表情符号是这样的:

代码语言:javascript
复制
|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,但我不想通过代码转换成这种格式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-30 16:02:56

正如注释中所建议的,您应该使用优秀的emoji-java库。首先,添加所需的依赖项-例如,Maven将如下所示:

代码语言:javascript
复制
    <dependency>
        <groupId>com.vdurmont</groupId>
        <artifactId>emoji-java</artifactId>
        <version>3.1.3</version>
    </dependency>

然后,你应该改变json,因为表情符号使用的是反斜杠(\)而不是竖线(|)。

之后,您可以像这样解析文件(Java 8):

代码语言:javascript
复制
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:

代码语言:javascript
复制
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以便从文件中检索正确的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41870588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档