gpt4 book ai didi

ajax - jQuery-Ajax JSON 字符集冲突

转载 作者:行者123 更新时间:2023-12-01 06:07:52 26 4
gpt4 key购买 nike

我有两个组合框“A”和“B”。当选择组合“A”中的值(onchange 事件)时,将使用 jQuery Ajax (dataType:json) 填充组合“B”。

有些情况下,“B”中的部分数据可以是中文/国际,这种情况下数据显示为“???”在浏览器中。

通常整个设置如下:

ERP <---> Servlet <---> JSP <---> 浏览器

ERP 启用了 UTF-8。我可以在ERP控制台中清楚地看到中文数据。我已将传递到 servlet 的结果数据转储到一个文件中,只是为了检查它是否正确。它已完美编码。我已将 JSP 的 contentType 设置为 UTF-8。一切都已就位。

我已将 Ajax 中必要的 contentType 添加到“application/json;charset=utf-8”。仍然没有骰子。

剩下的就是浏览器了。我用过所有的浏览器,都出现了同样的问题。我注意到浏览器在动态填充时根本无法理解中文数据的字符集。

可能出了什么问题?由于安全原因我无法发布代码。如果有任何建议,我将不胜感激。

非常感谢!〜萨比尔

最佳答案

如果您已将 JSP 设置为 UTF-8 并且生成的 contentType 也设置为 UTF-8,您可以尝试此操作

1) 调用 servlet 时使用 contentType 参数怎么样,如 https://stackoverflow.com/a/6283111/1078487 所示

$.ajax({
type: "POST",
url: "yourservlet",
dataType: "text",
data: {yourparams},// here we def wich variabe is assiciated
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function(data) {
//population
}
});

2) 即使您的 ERP 设置为 UTF-8,只需使用 UTF-8 字节转换仔细检查那些返回字符串,看看会发生什么。

byte[] utf8Bytes = stringToParse.getBytes("UTF8");
String stringToReturn = new String(utf8Bytes, "UTF8");

关于ajax - jQuery-Ajax JSON 字符集冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com