Javascript 该死!JSON ajax请求(utf-8)转换为拉丁1大写字符

Javascript 该死!JSON ajax请求(utf-8)转换为拉丁1大写字符,javascript,ajax,json,encoding,utf-8,Javascript,Ajax,Json,Encoding,Utf 8,我遇到了以下问题:我正在处理的javascript库使用JSON跨域请求从Ruby on Rails后端获取数据: function getData() { $.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")} }) $.ajax({

我遇到了以下问题:我正在处理的javascript库使用JSON跨域请求从Ruby on Rails后端获取数据:

function getData()
{
    $.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")} })

    $.ajax({ 
                url: backend_server + '?callback=parseData&op=516',
        contentType: "application/json; charset=utf-8",
        dataType: 'jsonp',
        success: function (xml) {
           //console.log('success');
        }
    });
}
RoR从中获取数据的数据库在内部使用latin1,但是,如果内存正常,这种JSON请求只能使用UTF-8完成

该网页的标题为:

Content-Type    text/html; charset=ISO-8859-1
页面的元标记也是ISO-8859-1:

<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>

现在,在从请求中获取数据之后,我的Javascript库将对其进行解析,并最终将其附加到页面中的某个div中(使用最新的JQuery,这并不重要)。所有拉丁字符都显示不正确

我注意到不同的浏览器对这些字符的解释不同(对于某些浏览器来说,它工作得很好,而对于其他浏览器来说,就没那么多了)。我最后对我找到的utf8_解码功能做了一点修改(检测用户代理并完全跳过Safari、IE和Opera的处理),但最终我仍然无法显示特殊的拉丁大写字符,如“”、“À”、“Á”、“Á”或“Ô

有什么想法吗?我迷路了,需要一些提示。 提前感谢,, J

附言:该功能网站上最重要的评论也是我的


Edit1:我也尝试过使用
unescape(encodeURIComponent(str_data))
,但它也不起作用

如果页面是拉丁语,而服务器使用拉丁语,为什么您希望json是utf-8。JSON不必是utf-8


尝试从上面代码中的contentType参数中删除utf-8。

如果页面是拉丁语,而服务器使用拉丁语,为什么您希望json是utf-8。尝试从上面代码中的contentType参数中删除utf-8。(JSON不一定非要是utf-8)嗯,我还以为非要呢!很好,谢谢!请回答问题以便我接受。不必是UTF-8,但sais
JSON文本应采用Unicode编码。默认编码是UTF-8。
先生,您在这里绝对给出了错误的方向:“JSON文本应以Unicode编码。默认编码是UTF-8。”可能也是如此。感觉需要使用unicode,