【问题标题】:UTF-8 conversion is not happening for larger sizeUTF-8 转换不会发生在更大的尺寸上
【发布时间】:2017-06-20 23:05:35
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 没用..!,我在这里尝试的是从垃圾字符到有效字符。相同的字符正在转换并在其他屏幕中正确显示,上面显示的代码,相同的方法在其他屏幕中不起作用
    猜你喜欢
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2011-07-11
    • 2011-08-28
    相关资源
    最近更新 更多