org.json字符编码/解码问题

时间:2010-11-05 17:36:53

标签: java json

所以我有一个webservice调用,它给了我一个JSON字符串。我已经请求响应发送回UTF-8编码的内容。当我检查返回的值时,一切看起来都很好。当我创建一个新的JSONObject并将JSON文本传递给构造函数时,事情开始引起问题。

具体做法是: Web服务返回响应中的EM DASH(http://www.fileformat.info/info/unicode/char/2014/index.htm)字符 - “格式”:“按需事件 - 所有会话”

在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上设置字符编码?我已经做了相当多的环顾四周,发现很少有帮助。

提前感谢您的协助。

1 个答案:

答案 0 :(得分:1)

好问题。

JSON规范似乎允许转义所有unicode字符

http://www.ietf.org/rfc/rfc4627.txt

但是当我测试时,GSON似乎没有逃脱EM DASH

http://code.google.com/p/google-gson/