所以我有一个webservice调用,它返回给我一个JSON字符串。我已经要求将响应发送回UTF-8编码的内容。当我检查返回的值时,一切看起来都很好。当我创建一个新的JSONObject并将JSON文本传递给构造函数时,事情就开始产生问题了。
具体来说: webservice在响应中返回一个EM破折号(http://www.fileformat.info/info/unicode/char/2014/index.htm)字符- "format":"On Demand Event-All Session“
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解析字符串时设置字符编码?我已经做了相当多的环顾,但几乎没有找到什么有帮助的东西。
提前感谢您的帮助。
发布于 2012-02-25 05:47:33
问得好。
JSON规范似乎允许对所有unicode字符进行转义
http://www.ietf.org/rfc/rfc4627.txt
但当我测试时,GSON似乎无法逃脱EM破折号
http://code.google.com/p/google-gson/
https://stackoverflow.com/questions/4108489
复制相似问题