java将十六进制NCRs文本转换为unicode字符
我正在为当地语言制作一个提要阅读器应用程序。一个新闻网站提供这些字符的rss提要 &x0D39&x0D32&x0D47&x0D3E&x0D38&x0D4D&x0D31&x0D4D&x0D31&x0D3E&x0D15&x0D4D&x0D15&x0D4D&x0D13&x0D35&x0D7C&x0D2B&x0D4D&x0D32&x0D47&x0D3E 这实际上意味着 ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ 这也是我希望在我的应用程序中显示的内容 如何将此输入转换为所需的格式。试试这个java将十六进制NCRs文本转换为unicode字符,java,android,unicode,hex,Java,Android,Unicode,Hex,我正在为当地语言制作一个提要阅读器应用程序。一个新闻网站提供这些字符的rss提要 &x0D39&x0D32&x0D47&x0D3E&x0D38&x0D4D&x0D31&x0D4D&x0D31&x0D3E&x0D15&x0D4D&x0D15&x0D4D&x0D13&x0D35&x0D7C&x0D2B&x0D4D&x0D32&x0D47&x0D3E 这实际上意味着 ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ 这也是我希望在我的应用程序中显示的内容 如何将此输入转换为所需的格式。试试这个 Str
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。
但无法处理x10000到x10FFFF
或者你可以这样使用
Document doc = Jsoup.parse(input);
String output = doc.text();
System.out.println(output);
// -> ഹലോ സ്റ്റാക്ക്ഓവർ ഫ്ലോ
您必须找到这样的字体,将英语转换为本地语言python中有没有等效的解决方案?