我在应用中显示重音字符时遇到问题;它显示⛽而不是ó。该字符串来自从服务器检索的json文件。以下是技术细节:
JSON:(这是从服务器检索的对象)
注意第三个键“Relación”字母“o”的重音。
[
{
"key": "Canales"
},
{
"key": "Productos"
},
{
"key": "Relación con el ejecutivo"
}
]
Ajax (这里是检索信息的代码)
通知我已经添加了charset = utf-8,因为大多数答案建议
$.ajax({
url: url,
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(uri){
alert("clintg test: " + JSON.stringify(uri));
}
}
提醒(正如您所看到的,它只显示一个符号框符号 - > ó)
答案 0 :(得分:3)
为@georg的建议提供更多细节,帮助我解决这个问题:
由于我无法更改服务器端脚本,因此我调整了代码。
我将我的ajax请求中的 charset 更改为 ISO-8859-1 ,但由于ajax的默认字符集是utf-8,我不得不覆盖charset与$.ajax.beforeSend
:
$.ajax({
url: url,
type: "GET",
dataType: "json",
contentType: "application/json; charset=iso-8859-1",
success: function(uri){
alert("clintg test: " + JSON.stringify(uri));
},
beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('application/json;charset=iso-8859-1');
}
}
这是帮助我找出并覆盖字符集的问题的链接:Jquery ignores encoding ISO-8859-1