gpt4 book ai didi

java - java (NetBeans) 中表情符号的支持?

转载 作者:行者123 更新时间:2023-11-30 02:47:36 28 4
gpt4 key购买 nike

我正在尝试制作一个从 .txt 文件中读取一些文本的程序,我想计算某个单词被使用的次数。

文本中还包含表情符号,当我打印该行时,Java 在控制台中将这些表情符号打印为方括号“[]”。

Netbeans 是否可以检测/支持这些表情符号?举几个例子:(😛、😄、😁、🙈、✋)

我正在使用缓冲读取器和写入器。

     while((line = bufferedReader.readLine()) != null) {

System.out.println(line);

}

干杯!

最佳答案

您看到的是正方形(可能是 bean 腐),因为您没有能够呈现这些字符的字体。因此,第一步是确保您拥有这样的字体。

即使拥有能够呈现这些字符的字体也不意味着它们将在 NetBeans 控制台中正确打印。这是因为表情符号通常是非 BMP代码点 (> 0xFFFF) 因此用 2 个 UTF-16 字符进行编码 (🙈 -> "\uD83D\uDE48")。这 2 个字符是 Surrogate Pairs这是使用 BMP 代码点表示非 BMP 代码点的一种方法。

IDE 应该将 "\uD83D\uDE48" 转换为单个代码点 (0x1F648),然后要求字体渲染此代码点,而不是两个独立的代理对。

Java String 类有几种方法来处理代码点而不是字符:

String.codepoints()
String.codePointAt(int i)
Character.isBmpCodePoint(int cp)
Character.isSurrogate(char c)
Character.isHighSurrogate(char c)
Character.isLowSurrogate(char c)

例如

Integer.toHexString("\uD83D\uDCA9".codePointAt(0)) -> 1f4a9

关于java - java (NetBeans) 中表情符号的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39703663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com