所以我有一个网络服务调用返回一个 JSON 字符串。我已请求响应发送回 UTF-8 编码的内容。当我检查返回的值时,一切看起来都很好。当我创建一个新的 JSONObject 并将 JSON 文本传递到构造函数时,事情开始出现问题。
具体来说: Web 服务在响应中返回一个 EM DASH (http://www.fileformat.info/info/unicode/char/2014/index.htm) 字符 - "format":"On Demand Event—All Sessions"
在 JSONObject 收到字符串后,它将此字符转换为此字符的 java 表示形式 - "format":"On Demand Event\u2014All Sessions"
我正在使用 org.json 库来执行我的命令,并且正在考虑在必要时转向不同的实现。以下是我运行节目的内容:
HttpClient client = new HttpClient();
GetMethod getDownloads = new GetMethod("http://localhost:8080/ecommerce-ws/service/account/downloads");
getDownloads.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
getDownloads.setRequestHeader("Accept", "application/json");
client.executeMethod(getDownloads);
String httpResponse = getDownloads.getResponseBodyAsString();
JSONObject downloadsJSON = new JSONObject(httpResponse);
有什么方法可以在解析字符串时在 JSONObject 上设置字符编码?我环顾四周,但几乎没有发现任何帮助。
预先感谢您的协助。
最佳答案
关于java - org.json 字符编码/解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108489/