mysql数据库中有一个字段类型为json,而且其中存在key=中文,而不是key=“中文”,这种数据在对外提供接口数据的时候,发现页面返回的数据是乱码!!!!我勒个去!

Debug时发现,无论使用JSONObject还是Gson去解析从mysql中查询出来的字符串得到的结果都是乱码!

后来发现了下面这篇博客的内容后尝试后成功了!

1.比如接口传参数为中文会乱码

接口中传过来key=中文;;;;而不是这种类型的“中文”,会乱码报错什么的,解决方法

byte[] temp=key.getBytes("iso8859-1");
key = new String(temp);

以下是我的处理方式,成功解析!

JSONArray json1= JSONObject.parseArray(new String(result.getList().getBytes("iso8859-1"), "UTF-8"));
List json2 = gson.fromJson(new String(result.getList().getBytes("iso8859-1"), "UTF-8"), List.class);
System.out.println("json1="+ json1);
System.out.println("json2="+ json2);
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐