我正在尝试使用String.getBytes(" UTF-32")转换字符串。它适用于较短的字符串。但对于较长的,它会截断并保存到极限。
我需要将字符串转换为字节以在其中打印文本。我可以在转换之前看到整个字符串(在使用"字符串" .getbytes之前),但是当它被打印时,它会打印到一个限制。
任何解决方案/建议人员。
答案 0 :(得分:3)
首先,String.getBytes("UTF-32")
不会“截断”生成的byte[]
或String
。永远不会。
您将获得整个String
的字节表示...或OutOfMemoryError
;即完全失败。
那么导致截断的原因是什么?
可能会在getBytes
电话之前发生;例如由于某种原因,正在读取或创建字符串的过程可能会截断它。
可能会在getBytes
电话后发生;例如输出byte[]
(或其他)的过程可能有行限制。 (例如,我记得logcat
对日志消息的长度有限制...... 4700
的数字很模糊。)
如果没有看到您的代码以及截断的证据,就无法确定这里的实际情况。但我们可以放心地说,它不是getBytes
正在进行截断。