在我的应用程序检索称为谷歌搜索设备(GSA)的外部工具JSON格式的搜索结果。来自GSAJava的JSON文本编码问题
JSON结果是非常大的,因此,我希望修改GSA JSON结果为更适合显示在我的网页。
如果我没有直接在我的Java代码格式化我不会在我的网页遇到任何编码问题显示GSA JSON结果。
但是,如果我大GSA JSON结果格式化为我所面对的问题编码在我的servlet的Java代码合适的JSON格式。示例 - “All Access Pass”
显示为ÂAll Access PassÂ
。
我从我的servlet返回修改后的JSON的网页使用下面的代码 -
response.setContentType("application/json;charset=UTF-8");
我试图改变字符集来iso-8859-1
但它并没有任何区别。
编辑我原来的JSON以下方式 -
String responseText = getMethod.getResponseBodyAsString();
JSONObject resultJSON = new JSONObject();
try {
JSONObject jsonObj = new JSONObject(responseText);
JSONArray resultJsonArray = jsonObj
.getJSONArray("RES");
JSONObject searchResultJSON = null;
for (int iCnt = 0; iCnt < resultJsonArray.length(); iCnt++) {
searchResultJSON = new JSONObject();
JSONObject obj = resultJsonArray.getJSONObject(iCnt);
JSONObject metaTagObj = obj
.getJSONObject("MT");
if (metaTagObj.has(("title"))) {
searchResultJSON.put("title",metaTagObj.get("title").toString());
}
resultJSON.accumulate("RES", searchResultJSON);
}
response.setContentType("application/json;charset=UTF-8");
response.getWriter().print(resultJSON);
}catch(JSONException e){}
修改到我要在这里可以用JavaScript来完成这将解决我的问题,原来的JSON但它是我做的不想做。
- 有没有办法找出原GSA JSON文本的编码格式?
- 我怎样才能避免在原有GSA JSON更改文本编码的java代码?
请帮我理解这里发生了什么,以及如何避免这个问题。
我很好奇原来的JSON格式如何相同的字符。什么是您转换它的“合适的JSON格式”?你如何转换它? – jahroy 2013-03-20 06:18:28
我的代码唯一的区别是,当我显示原始JSON时,我将响应内容类型设置为(“application/json”)。但是如果我用修改过的JSON做同样的事情,我会变得“??”字符,所以我将它设置为“application/json; charset = UTF-8”。 – 2013-03-20 06:34:54
这些引号通常来自微软的应用程序...所以我google了一下,发现[this](http://forum.springsource.org/showthread.php?72944-How-to-handle-Smart-Quotes-pasted- into-TextArea-input),这让我想知道你是否需要阅读“_Microsoft的Windows-1252字符编码_”。或者,也许我的路要走...... – jahroy 2013-03-20 06:41:34