小小鱼来喽 2017-03-17 07:44 采纳率: 0%
浏览 2878
已采纳

jsonp返回的数据中的汉字在浏览器中是问号

前端js代码:
$.ajax({
url: "http://176.1.19.64:8081/engine/config/" + treeNode.id + ".do?callback=?",
type: "get",
dataType: "jsonp",
scriptCharset: "UTF-8",
jsonpCallback:"successCallback",
data: null,
async: false,
timeout: $.config.ajax.timeout,
success: function (json) {

var reportConfig = JSON.parse(json.reportConfig);
console.log(reportConfig);
$.databrowser.addTab(reportConfig);
}
});
服务端代码:
@RequestMapping(value = WebUrls.URL_CONFIG)
public
@ResponseBody
String getReportConfig(@PathVariable String nodeId, HttpServletRequest request, HttpServletResponse response) {
DynamicRequestParams params = new DynamicRequestParams(request);
String result = "";
try {
result = JsonUtil.objectToJsonStr(engineService.getReportConfig(nodeId));
} catch (MapperException e) {
logger.info(e.getMessage());
e.printStackTrace();
}
try {
String callback = params.get("callback").toString();
JSONObject jsonObject = new JSONObject();
jsonObject.put("reportConfig",result);
result = callback + "(" + jsonObject.toString() + ")";
} catch (Exception e) {
logger.info(e.getMessage());
e.printStackTrace();
}
logger.info("success");
try {
result = new String (result.getBytes("utf-8"),"utf-8");
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(),e);
e.printStackTrace();
}
logger.info(result);
try {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage(),e);
e.printStackTrace();
}
//response.setContentType("text/plain;charset=ISO-8859-1");

    return result;
}

chrome调试显示的网络信息:
General
Request URL:http://176.1.1.167:8080/engine/config/30000102.do? callback=successCallback&_=1489735733373
Request Method:GET
Status Code:200
Remote Address:176.1.1.167:8080
Response Headers
view source
Content-Length:58893
Content-Type:text/plain;charset=ISO-8859-1
Date:Fri, 17 Mar 2017 07:29:00 GMT
Request Headers
view source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:176.1.1.167:8080
Pragma:no-cache
Referer:http://176.1.19.64:8081/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Query String Parameters
view source
view URL encoded
callback:successCallback
_:1489735733373

返回的数据片段:
successCallback({"reportConfig":"{\"columnMaxNum\":3,\"id\":\"30000102\",\"rowMaxNum\":3,\"showBlock\":false,\"title\":\"????????\",

现在就是这个问号,不知道怎么处理。查了好多方法,不成功。
  • 写回答

2条回答 默认 最新

  • 小小鱼来喽 2017-03-17 15:54
    关注

    问题解决了,采用的

    response.getWriter.print(text);

    response.getWriter.close();

    这两句即可,不需要在Tomcat中设置,Tomcat中的设置应该只是针对传到后台的数据的编码的,http的response还是需要自己指定的。

    今天看了一天这个问题,终于解决了,十分开心。

    明天可以好好玩了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 python读取速度问题
  • ¥15 stm32f407使用DMA问题
  • ¥15 您好 这个API接口该怎么弄 网站搭建好了 API也有 现在就不知道该怎么填写API 不知道怎么用
  • ¥88 用uniapp写一个多端的程序,用到高德地图,用高德的JSAPI吗?
  • ¥20 关于#c++#的问题:水果店管理系统
  • ¥30 dbLinq最新版linq sqlite
  • ¥20 对D盘进行分盘之前没有将visual studio2022卸载掉,现在该如何下载回来
  • ¥15 完成虚拟机环境配置,还有安装kettle
  • ¥15 2024年全国大学生数据分析大赛A题:直播带货与电商产品的大数据分析 问题5. 请设计一份优惠券的投放策略,需要考虑优惠券的数量、优惠券的金额、投放时间段和投放商品种类等因素。求具体的python代码
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗