我在http://localhost.com.br:8080/servlet/apps.ctr.HTMLCtr?p1=getCtr有这个servlet。它顺便返回一个JSON。
当我尝试通过JavaScript / jQuery获取数据时,ã
和ç
个字符会变成黑色菱形,中间有一个问号:�
我认为我的服务器端存在错误配置,但如果我尝试使用Chrome浏览器访问它,我会收到数据,例如:
"Liberação de Registro",
"Mar 28, 2016"
我认为这与客户端编码有关,所以我尝试了http://api.jquery.com/jQuery.ajax/#toptions提供的选项:
var s = 'http://localhost.com.br:8080/servlet/apps.ctr.HTMLCtr?';
$.ajaxSetup({
scriptCharset: "utf-8",
contentType: "application/json;charset=utf-8"
});
$.getJSON(s,function(result){
console.log(result);
});
我尝试将charset更改为ISO-8859-1甚至ISO-8859-15并在Chrome控制台上运行上述代码,但没有任何改变。
我在这里缺少什么?
编辑:这不是How to set encoding in .getJSON JQuery的重复,因为该问题与向servlet发送信息有关,我的问题是从servlet获取信息。此外,关于使用$.ajaxSetup
的问题提供的解决方案并没有解决我的问题。
EDIT2:Chrome的响应标题:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: no-cache
Cache-Control: max-stale=0
Expires: Wed, 31 Dec 1969 23:59:59 GMT
Content-Length: 224
Date: Thu, 14 Apr 2016 16:58:26 GMT
同时发布HTML(我不包括<body>
部分):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="br.com.project1.usuario.Usuario"%>
<html>
<head>
<title>CbrCpt</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" href="/js/jquery-ui-1.11.1.custom/jquery-ui.css" />
<link rel="stylesheet" href="/css/dataTables.jqueryui.css" />
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/default.css" />
<link rel="stylesheet" href="/js/bootstrap-datepicker-1.5.0/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="css/jquery.dataTables.min.css" />
<link rel="stylesheet" href="css/responsive.dataTables.min.css" />
</head>
<body>
</body>
<script type='text/javascript' src='/js/jquery/jquery-1.10.2.min.js'></script>
<script type='text/javascript' src='js/bootstrap.min.js'></script>
<script type='text/javascript' src='/js/jquery-ui-1.11.1.custom/jquery-ui.js'></script>
<script type='text/javascript' src='/js/accounting.min.js'></script>
<script type='text/javascript' src='/js/jquery.jqdock.min.js'></script>
<script type='text/javascript' src='js/datepicker-pt-BR.js'></script>
<script type='text/javascript' src='js/moment-with-locales.js'></script>
<script type='text/javascript' src='js/jquery.dataTables.min.js'></script>
<script type='text/javascript' src='js/dataTables.responsive.min.js'></script>
<script type='text/javascript' src='js/jquery.maskedinput.js'></script>
<script type='text/javascript' src='js/cbrcpt.js'></script>
</html>
EDIT3:在Chrome控制台上打开响应时,信息的字符正确。