gpt4 book ai didi

Java读取带有补充unicode字符的字符流

转载 作者:行者123 更新时间:2023-11-30 06:33:46 26 4
gpt4 key购买 nike

我在使用 Java 读取补充 unicode 字符时遇到问题。我有一个文件可能包含补充集中的字符(任何大于\uFFFF 的字符)。当我设置我的 InputStreamReader 以使用 UTF-8 读取文件时,我希望 read() 方法为每个补充字符返回一个字符,而不是它似乎在 16 位阈值上拆分。

我看到了一些关于基本 unicode 字符流的其他问题,但似乎没有处理大于 16 位的情况。

这是一些简化的示例代码:

InputStreamReader input = new InputStreamReader(file, "UTF8");
int nextChar = input.read();
while(nextChar != -1) {
...
nextChar = input.read();
}

有谁知道我需要做什么才能正确读取包含增补字符的 UTF-8 编码文件?

最佳答案

Java 使用 UTF-16 .因此,如果您的输入流具有星体字符,它们将显示为代理项对,即显示为两个 char。第一个字符为高代理,第二个字符为低代理。

关于Java读取带有补充unicode字符的字符流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7721293/

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