2017-01-26 25 views
3

JSON的表情符號沒有奏效怎麼我用編譯 'org.apache.commons:公地lang3:3.4' 解碼android系統

的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 但我不想如何通過代碼

+0

ohh沒有建議! – hadi

+0

你有試過這個圖書館嗎? https://github.com/vdurmont/emoji-java –

回答

2

轉換成這種格式作爲註釋,你應該使用一個優秀的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