String.getBytes()不适用于android中的一些较大的字符串

时间:2014-10-19 02:53:32

标签: java string byte

我正在尝试使用String.getBytes(" UTF-32")转换字符串。它适用于较短的字符串。但对于较长的,它会截断并保存到极限。

我需要将字符串转换为字节以在其中打印文本。我可以在转换之前看到整个字符串(在使用"字符串" .getbytes之前),但是当它被打印时,它会打印到一个限制。

任何解决方案/建议人员。

1 个答案:

答案 0 :(得分:3)

首先,String.getBytes("UTF-32")不会“截断”生成的byte[]String。永远不会。

您将获得整个String的字节表示...或OutOfMemoryError;即完全失败。

那么导致截断的原因是什么?

  • 可能会在getBytes电话之前发生;例如由于某种原因,正在读取或创建字符串的过程可能会截断它。

  • 可能会在getBytes电话后发生;例如输出byte[](或其他)的过程可能有行限制。 (例如,我记得logcat对日志消息的长度有限制...... 4700的数字很模糊。)

如果没有看到您的代码以及截断的证据,就无法确定这里的实际情况。但我们可以放心地说,它不是getBytes正在进行截断。