【发布时间】:2018-01-26 20:57:15
【问题描述】:
我正在对 java servlet 进行 ajax 调用。 servlet 使用一个 JSON 数组进行响应,该数组的字符集设置为 UTF-8。但是,一旦我在 AJAX 调用中得到响应,我就会得到 ???我的字符串中的字符。我进行了大量测试和研究,但找不到可能的解决方案。
AJAX 调用:
$.ajax({
type: 'POST',
data: {curTableName: curTableName,curTableID: curTableID},
dataType: 'json',
url: '../ShowProducts',
success: function(productInfo){
var noOfProducts = productInfo.length;
for(var i = 0; i < noOfProducts; i++)
{
product.push(productInfo[i].product.substr(0,25) + "...");
webshop.push(productInfo[i].webshop);
price.push(productInfo[i].price);
availability.push(productInfo[i].availability);
lastChecked.push(productInfo[i].lastChecked);
checkFreq.push(productInfo[i].checkFreq);
url.push(productInfo[i].url);
DisplayProductInfo(product[i],webshop[i],price[i],availability[i],lastChecked[i],checkFreq[i],url[i]);
}
}
});
还有我的 Java Servlet 响应:
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonArr.toString());
根据我自己的研究,java servlet 似乎是正确的,可能是 javascript 存在问题。任何人都有任何好主意。非常感谢所有帮助。 :)
【问题讨论】:
-
您的数据是 UTF-8 编码的吗?
-
如Java servlet响应所示,我将字符编码设置为UTF-8。
-
你设置了,但是如果加载的数据不是UTF-8编码的,那就不行了。
-
我会去看看。谢谢。
标签: java json ajax servlets utf-8