Java String.valueOf(jsonArray) 将 jsonArray 中的 UTF-8 编码内容变成问号 [英] Java String.valueOf(jsonArray) turns UTF-8 encoded content from jsonArray into question marks

查看:74
本文介绍了Java String.valueOf(jsonArray) 将 jsonArray 中的 UTF-8 编码内容变成问号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含 utf-8 编码字符串的 json 数组(JSONArray 类型):

I have this json array (of type JSONArray) containing utf-8 encoded strings:

    [{
      "success":true,
      "data":[
         {"moduleTitle":"تست",
          "title":"تست دو"}
       ],
       "status":200
    }]

然后我想获取它的字符串值.

And then I would like to get the string value of it.

String s = String.valueOf(jsonArray);

但是utf-8字符串会变成这样的问号:

but the utf-8 strings will be turned into question marks like this:

"[{成功":真,数据":[{模块标题":???",标题":?????"}],状态":200}]"

"[{ "success":true, "data":[ {"moduleTitle":"???", "title":"??? ??"} ], "status":200 }]"

如何让它正确显示字符串?

how can I make it show the strings correctly?

推荐答案

您正在使用 JVM 的默认字符集转换数据,UTF-8 字符集很可能不在您的服务器或本地.

You are converting the data using the JVM's default charset, UTF-8 charset most probably is not on your server or local.

试试这个:

String s = String.valueOf(jsonArray);
String string2 = new String(s.getBytes(),"UTF-8");
return new ResponseEntity<String>(string2, HttpStatus.OK);

这篇关于Java String.valueOf(jsonArray) 将 jsonArray 中的 UTF-8 编码内容变成问号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆