gpt4 book ai didi

ajax - JSON响应中的特殊字符编码

转载 作者:行者123 更新时间:2023-12-04 05:06:49 27 4
gpt4 key购买 nike

我需要在 json 响应中使用西类牙语文本。我已经尝试了所有可能的方法,但消息仍然在 UI 上显示奇怪的字符。我想传达的信息是,

   Número de Seguro Social

但它显示为,
    N�mero de Seguro Social 

在 Java 方面,
 //response.setContentType("application/json");
//response.setCharacterEncoding("UTF-8");
response.setContentType("application/json;charset=utf-8");
OutputStream out = null;
out = response.getOutputStream();
out.write(jsonResponse.toString().getBytes());
out.close();

在 head 部分添加了元标记。
  <meta http-equiv="content-type" content="text/html;charset=utf-8">

我还在 ajax 调用中设置了内容类型
 $.ajax({
async: false,
cache: false,
type: get,
contentType: "application/json; charset=utf-8",
url: //url,
data: //data,
dataType: //dataType,
success: //callbackfn,
error: //errorfn
});

似乎没有任何工作。我还能做些什么来让特殊字符按我的意图工作吗?

最佳答案

我会通过发送字符串来测试错误首先发生在哪里:

 "N\u00famero de Seguro Social"

对于显示 UTF 字符串的浏览器,只是为了确保它能够理解和显示您尝试显示的 UTF 字符串。

但实际问题可能出在:
out.write(jsonResponse.toString().getBytes());

因为 getBytes 将获取系统默认字符集的字节,这可能不是 UTF-8。您可以调用 Charset.defaultCharset(); 进行检查。

我猜 jsonResponse是您自己的类,用于存储响应数据,然后在最后将其转换为 JSON。我建议使用 http://www.json.org/ 中的库喜欢 Google JSON library用于进行 JSON 转换,因为有很多像这样的小问题,只要您使用一个像样的库来进行编码/解码,这些问题就可以解决。

关于ajax - JSON响应中的特殊字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15441243/

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