gpt4 book ai didi

java - 如何将 UTF-8 字节 block 转换为字符?

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:29 25 4
gpt4 key购买 nike

我有一个很大的 UTF-8 输入,它被分成 1-kB 大小的 block 。我需要使用接受字符串的方法来处理它。像这样的东西:

for (File file: inputs) {
byte[] b = FileUtils.readFileToByteArray(file);
String str = new String(b, "UTF-8");
processor.process(str);
}

我的问题是我无法保证任何 UTF-8 字符不会被分成两个 block 。运行我的代码的结果是某些行以“?”结尾,这破坏了我的输入。

解决这个问题的好方法是什么?

最佳答案

如果我没理解错的话,您有一个用 UTF-8 编码的大文本,然后拆分为 1 KB 的文件。现在您想读回文本,但您担心编码字符可能会跨文件边界拆分,并导致 UTF-8 解码错误。

API 有点脏,但有一个 SequenceInputStream这将从一系列子流中创建看似单个 InputStream 的内容。使用一组 FileInputStream 实例创建其中一个,然后创建一个 InputStreamReader 将 UTF-8 字节流解码为应用程序的文本。

关于java - 如何将 UTF-8 字节 block 转换为字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845444/

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