我在使用 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 编码文件?