2017-06-15 252 views
0

我正在爲當地語言製作Feed閱讀器應用程序。新聞站點提供RSS訂閱這些字符java將Hex NCRs文本轉換爲Unicode字符

ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ

這實際上意味着 ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ 這也是我想在我的應用程序顯示..

如何在Java,可我這個輸入轉換成所需的形式..

+0

你必須找到這樣的字體,將英語轉換爲當地語言 –

回答

1

試試這個。

String input = "ഹലോ സ്റ" 
    + "്റാക്ക്ഓ" 
    + "വർ ഫ്ലോ"; 
Pattern HEX = Pattern.compile("(?i)&#x([0-9a-f]+);|&#(\\d+);"); 
Matcher m = HEX.matcher(input); 
StringBuffer sb = new StringBuffer(); 
while (m.find()) 
    m.appendReplacement(sb, 
     String.valueOf((char) (m.group(1) != null ? 
      Integer.parseInt(m.group(1), 16) : 
      Integer.parseInt(m.group(2))))); 
m.appendTail(sb); 
String output = sb.toString(); 
System.out.println(output); 
// -> ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ 

此代碼還可以處理十進制NCR。 但無法處理x10000x10FFFF。您可以使用Jsoup這樣的。

Document doc = Jsoup.parse(input); 
String output = doc.text(); 
System.out.println(output); 
// -> ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ 
+0

@ Pzy64我更新了答案。 – saka1029