在Javascript中显示重音字符

时间:2014-11-12 10:31:55

标签: javascript ajax json non-ascii-characters

我在应用中显示重音字符时遇到问题;它显示而不是ó。该字符串来自从服务器检索的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));
    }
}

提醒(正如您所看到的,它只显示一个符号框符号 - > ó

screenshot of alert box

1 个答案:

答案 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