对于更大的尺寸,不会发生UTF-8转换

时间:2017-02-03 14:31:36

标签: android utf-8 character-encoding android-volley utf-16

我无法理解为什么utf-8转换没有发生在接近1 MB的数据上,我得到的网络数据有一些特殊的字符而且它们没有在应用程序中正确呈现,在行转换之下数据成功的尺寸较小,但数据的尺寸接近1mb

responseString = new String(response.toString().getBytes("ISO-8859-1"), "UTF-8");

我想了解utf-8格式转换是否在java中有大小限制?

1 个答案:

答案 0 :(得分:0)

您的代码未从 ISO-8859-1 转换为 UTF-8 ,它会转换您的response.getString()字符串(来自 UTF-16 内部String表示)到 ISO-8859-1 并将其解释为 UTF-8 。它是不正确的,并且不适用于字节> = 128(Java中的负数字节)。

如果您想要响应字符串的 UTF-8 表示:

byte[] utf8Response = response.toString().getBytes("UTF-8");