将String转换为Android JSONObject会丢失utf-8

阿里·谢库普尔

我正在尝试从URL获取(JSON格式)字符串,并将其作为Json对象使用。将字符串转换为JSONObject时,我丢失了UTF-8编码。

这是我用来连接网址并获取字符串的函数:

private static String getUrlContents(String theUrl) {
    StringBuilder content = new StringBuilder();
    try {
        URL url = new URL(theUrl);
        URLConnection urlConnection = url.openConnection();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

        String line;
        while ((line = bufferedReader.readLine()) != null) {
            content.append(line + "\n");
        }
        bufferedReader.close();
    } catch(Exception e) {
        e.printStackTrace();
    }

    return content.toString();
}

当我从服务器获取数据时,以下代码显示正确的字符:

String output = getUrlContents(url);
Log.i("message1", output);

但是,当我将输出字符串转换为JSONObject时,波斯字符变成了这样的问号??????。(消息是JSON中数组的名称)

JSONObject reader = new JSONObject(output);
String messages = new String(reader.getString("messages").getBytes("ISO-8859-1"), "UTF-8");
Log.i("message2", messages);
克劳斯

您要告诉Javamessage使用ISO-8859-1将字符串(带有key 转换为字节,然后从这些字节创建一个新的String(解释为UTF-8)。

new String(reader.getString("messages").getBytes("ISO-8859-1"), "UTF-8");

您可以简单地使用:

String messages = reader.getString("messages");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将“普通” std :: string转换为utf-8

来自分类Dev

从UTF-8转换为ISO8859-1并重新转换为UTF-8后,符号会丢失

来自分类Dev

将ANSI转换为UTF8

来自分类Dev

将CSV转换为UTF-8

来自分类Dev

通过Java将ANSI转换为UTF-8:丢失了一些行

来自分类Dev

通过Java将ANSI转换为UTF-8:丢失了一些行

来自分类Dev

如何将List <String []>值从UTF-8转换为String?

来自分类Dev

需要使用“ exp / utf8string”将代码转换为更高的标准库代码

来自分类Dev

将string.decode('utf8')从python2转换为python3

来自分类Dev

将string.decode('utf8')从python2转换为python3

来自分类Dev

将byte *转换为8个字节或更少字节的std :: string会导致崩溃

来自分类Dev

将ANSI转换为UTF-8,然后再转换回ANSI是否安全(无数据丢失)?

来自分类Dev

如何/无法将乱码/奇怪的文本转换为utf-8 android(java)?

来自分类Dev

将字符串转换为UTF-8-Google API地理编码-Android

来自分类Dev

将MySQL表从Latin1转换为UTF8时如何防止/检查数据丢失

来自分类Dev

在UTF8中将System :: String转换为std :: string,随后将其转换为char *作为c_str

来自分类Dev

将字符串转换为UTF 8

来自分类Dev

将Python 3 unicode转换为utf-8

来自分类Dev

将Unicode代码转换为UTF-8

来自分类Dev

将数字实体转换为UTF-8

来自分类Dev

将UTF-8转换为字符串

来自分类Dev

无法将连字符转换为UTF-8

来自分类Dev

将字符串转换为UTF8

来自分类Dev

将Unicode转义序列转换为UTF-8

来自分类Dev

将French_CI_AS(ASCII)转换为UTF8

来自分类Dev

无法将连字符转换为UTF-8

来自分类Dev

Rails 4:将转义的Unicode转换为utf-8

来自分类Dev

将byte []转换为UTF8的字符串

来自分类Dev

将“ gzencode()”的返回值转换为UTF-8

Related 相关文章

热门标签

归档