String encodedInputText = URLEncoder.encode("input=" + question, "UTF-8");
urlStr = Parameters.getWebserviceURL();
URL url = new URL(urlStr + encodedInputText + "&sku=" + sku);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
jsonOutput = in.readLine();
in.close();
问题在于返回的JSON字符串包含所有Unicode代码,例如
"question":"\u51e0\u5339\u7684",
不是实际的汉字。 “ UTF-8”应该可以解决该问题。为什么不呢?
编辑:
ObjectMapper mapper = new ObjectMapper();
ResponseList = responseList = mapper.readValue(jsonOutput, ResponseList.class);
答案 0 :(得分:-1)
这不是编码问题,这是您的数据源问题。将字节转换为字符串时,编码起作用。您希望将\ uxxxx形式的字符串转换为另一个字符串不会发生这种编码。
整个问题是,数据源正在以这种方式序列化数据,因此原始数据不见了,并被\ uxxxx替换。
现在,您必须手动捕获\ uxxx序列并将其转换为实际字符。