如何在JLabel或Java中显示🔴

时间:2019-03-19 04:52:57

标签: java unicode

我试图弄清楚如何在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();

}

2 个答案:

答案 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")