You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中UTF-8字节数组转String/StringBuilder为何出现<Unreadable>结果

问题根本原因

你遇到的<Unreadable>结果不是字符串转换失败,是你使用的Java IDE调试器的默认显示机制导致的:绝大多数IDE(比如IntelliJ IDEA、Eclipse等)为了避免调试时加载过长字符串占用过多内存、拖慢调试响应速度,默认会对长度超过设定阈值(通常为几万到十万字符量级)的字符串/StringBuilder对象,在变量预览面板直接显示为<Unreadable>,但对象本身存储的内容是完全正常的,不会影响程序后续逻辑调用。

佐证依据

你的测试结果已经可以直接证明内容完整:

  • r.substring(1,60000)和r.substring(60000, r.count)都可以正常获取内容,说明StringBuilder已经完整存储了所有字节数组转换后的字符,不存在内容丢失或损坏问题。
  • 逐行打印readed内容正常,也说明字节转字符串的逻辑本身没有问题,只是整段拼接后的总长度超过了调试器显示阈值才出现异常提示。
  • Java的String/StringBuilder最大可支持2^31-1长度的内容,13万字符远低于上限,不存在容量不足问题。

验证方法

你可以通过以下两种方式确认内容完整:

  1. 打印字符串长度,输出的数值和你预期的转换后字符数一致即可证明内容完整:
System.out.println(r.length());
  1. 将完整内容写入本地文件查看:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;

// 调用以下代码写入文件
Files.writeString(Paths.get("./完整输出验证.txt"), r.toString(), StandardCharsets.UTF_8);

生成的文件会包含全部转换后的完整内容,不存在不可读问题。

调试显示优化方案

如果需要在调试器中直接预览完整内容,可以修改IDE调试配置:
以IntelliJ IDEA为例,打开File > Settings > Build, Execution, Deployment > Debugger > Data Views > Java,调整Alternative view limit的数值到大于你当前字符串长度即可。

内容的提问来源于stack exchange,提问作者HoWei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:39:00