Javascript $.getJSON()+;$。每个()都会产生一些对象';s键名未定义

Javascript $.getJSON()+;$。每个()都会产生一些对象';s键名未定义,javascript,html,json,Javascript,Html,Json,尽管我看到了很多与这个话题相关的问题,但我的问题似乎不同 我最好举个例子来解释我的问题: var data = [ { "Nº": 1, "Gasolina": "4,94", "Álcool": "4,28", "X": 397, "Y": -111 }, { "Nº": 2, "Gasolina": "4,10", "Álcool": "4,

尽管我看到了很多与这个话题相关的问题,但我的问题似乎不同

我最好举个例子来解释我的问题:

var data = [
    {
        "Nº": 1,
        "Gasolina": "4,94",
        "Álcool": "4,28",
        "X": 397,
        "Y": -111
    },
    {
        "Nº": 2,
        "Gasolina": "4,10",
        "Álcool": "4,84",
        "X": -477,
        "Y": 101
    }
];

$.each(data, function (key, val) 
{
    console.log(val);
    console.log(val['Nº']);
    console.log(val['Gasolina']);
});

console.log("------------------------------");

// "data.json" contains the same info as the variable "data"
$.getJSON("data.json", function(data) 
{
    $.each(data, function (key, val) 
    {
        console.log(val);
        console.log(val['Nº']);
        console.log(val['Gasolina']);
    });
});
输出:

{Nº: 1, Gasolina: "4,94", Ãlcool: "4,28", X: 397, Y: -111}
1
4,94
{Nº: 2, Gasolina: "4,10", Ãlcool: "4,84", X: -477, Y: 101}
2
4,10
------------------------------
{Nº: 1, Gasolina: "4,94", Álcool: "4,28", X: 397, Y: -111}
undefined
4,94
{Nº: 2, Gasolina: "4,10", Álcool: "4,84", X: -477, Y: 101}
undefined
4,10
因此,我的问题是,为什么关键名称“Nº”和“Álcool”在这两种情况下表现不同。看完这篇文章后,我想你们几乎可以把任何东西作为一个关键词。那么,为什么在使用
$.getJSON()
时,即使在
console.log(val)
中正确地打印了“Nº”(和“Álcool”)键名,却没有定义它们呢


注意,这在Nodejs中有效。这个问题只有在我尝试在HTML中使用它时才会出现。

您是否尝试在HTML文件中添加HTML编码

用于HTML 4

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

用于HTML5

<meta charset="UTF-8">


将此
meta
标记添加到
html文件中的
head
标记中。

是否尝试在html文件中添加html编码

用于HTML 4

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

用于HTML5

<meta charset="UTF-8">


将此
meta
标记添加到
html文件中的
head
标记中。

您有编码问题

UTF-8中的
Á
字符在ISO-8859-1中显示为
Ã

您的页面将作为UTF-8使用,并显示为ISO-8859-1

尝试转义字符,您将看到:

// "data.json" contains the same info as the variable "data"
$.getJSON("data.json", function(data) 
{
    $.each(data, function (key, val) 
    {
        console.log(val);
        console.log(val['N\u00ba']);
        console.log(val['Gasolina']);
    });
});
将页面编码更改为
UTF-8

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

您有编码问题

UTF-8中的
Á
字符在ISO-8859-1中显示为
Ã

您的页面将作为UTF-8使用,并显示为ISO-8859-1

尝试转义字符,您将看到:

// "data.json" contains the same info as the variable "data"
$.getJSON("data.json", function(data) 
{
    $.each(data, function (key, val) 
    {
        console.log(val);
        console.log(val['N\u00ba']);
        console.log(val['Gasolina']);
    });
});
将页面编码更改为
UTF-8

<meta http-equiv="content-type" content="text/html; charset=UTF-8">


因为
Nº!=Nº
,我怀疑您的两个文件没有使用相同的字符编码,即UTF8,请重新保存以使用相同的编码,并测试可能的副本,我不敢相信我有多愚蠢。你是对的,我忘了在html文件中添加UTF-8元。太简单了!因为Nº,我怀疑您的两个文件没有使用相同的字符编码,即UTF8,请重新保存以使用相同的编码,并测试可能的副本,我不敢相信我有多愚蠢。你是对的,我忘了在html文件中添加UTF-8元。太简单了!