Jquery ajax字符编码json

jquery ajax character encoding for json

本文关键字:json 编码 字符 ajax Jquery      更新时间:2023-09-26

这是我的ajax调用:

$.ajax({
        url: 'js/questions.json',
        type: 'POST',
        dataType: 'json',
        encoding: 'UTF-8'
    })
    .done(function(result) {
        console.log(result)
    })  
    .error(function(jqXHR, textStatus, errorThrown) {
        do_sliding(false, '#start', false, true);
    });

问题。json文件如下所示:

    {
        "questions": [
            {
                "question":"Er du forpliktet til å lese '"Code of conduct'"-dokumentet?",
                "choice_1":"Alle nyansatte skal lese det, men ikke de som har jobbet i Infratek i over to år",
                "choice_2":"Bare ledere med personalansvar",
                "choice_3":"Alle ansatte",
                "answerswer":"3"
            },
            {
                "question":"Hvor ofte må man lese igjennom '"Code of Conduct'"?",
                "choice_1":"Når man blir ansatt, deretter ved endringer",
                "choice_2":"En gang i året i forbindelse med Energisamtalen",
                "choice_3":"Det er tilstrekkelig å lese en gang, deretter er det sjefens ansvar å informere om endringer",
                "answerswer":"2"
            }
     ]
}

如你所见,我有一些区域性字符,如:: æ等。但是这些字符没有被正确编码。我得到了这样的东西:字符编码也设置在我的html页面<meta charset="UTF-8"> .

您正在谈论JSON文件。在通信的javascript端,没有文件,只有对请求的响应。我假设您的服务器上有一个文件,您将其发布到请求或请求生成此数据。

无论哪种方式,它都取决于您的服务器是否能够并配置将某些字符编码转换为UTF-8。

另外,当服务器从文件或其他地方读取json数据时,它可能对文件的编码一无所知。如果你问我,一个正常的服务器存在于默认使用UTF-8的系统中。

所以很可能你的服务器在没有重新编码的情况下传递JSON文件,并且该文件没有被编码为UTF-8,这将导致破碎的字符。

如果它是一个静态文件,您可以简单地转换它,例如使用

iconv -f WHATEVER_CODEPAGE_YOU_USE -t utf8 <original.json>uf8.json

.