我试图弄清楚如何在Java中显示ðŸ”。我能够将unicode转换为显示,所以如果我可以将🔴转换为unicode,那么我会被设置的。我当时以为我可以做一个很大的检查清单,但是这个数字会引起很多压力。
我正在尝试显示,但是API调用给了我🔴。我的问题是,如何将ðŸ”更改为红色圆圈,然后为其找到Unicode字符串。
这是符号的外观
用于格式化json的代码
private static String getStringFromInputStream(InputStream is) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
答案 0 :(得分:1)
您似乎正在使用未指定正确字符编码/设置的编辑器查看字符。
要在Java中使用smybol that String,请尝试:
String text = "\uD83D\uDD34";
JLabel label = new JLabel(text);
Unicode转义的来源:https://www.htmlsymbols.xyz/unicode/U+1F534
(可能仍然是您的字体没有该字符,在这种情况下,它看起来像是一个问号-可能比4个奇怪的带重音符号的字符还要好)
答案 1 :(得分:1)
仍然存在一个问题:new InputStreamReader(is)
使用程序运行时的默认编码。我希望is
的固定编码:new InputStreamReader(is, "UTF-8")