【问题标题】:jquery ajax character encoding for jsonjson的jquery ajax字符编码
【发布时间】:2015-09-27 16:17:33
【问题描述】:

这是我的 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);
    });

questions.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",
                "answer":"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",
                "answer":"2"
            }
     ]
}

如您所见,我有一些区域性字符,例如:åøåæ 等。但是这些字符编码不正确。我得到这样的东西:�。我的html页面<meta charset="UTF-8">中也设置了字符编码。

【问题讨论】:

  • 您确定所有正在运行的文件都设置为 UTF8 吗?
  • 其实这是我后来发现的问题。不过还是非常感谢。

标签: javascript jquery json utf-8 character-encoding


【解决方案1】:

您正在谈论一个 JSON 文件。在通信的 javascript 端,没有文件,只有对请求的回答。我假设您的服务器上有一个文件,您可以在请求中发布该文件,或者请求会生成此数据。

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

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

因此,您的服务器可能会在未重新编码的情况下交付 JSON 文件,并且该文件未编码为 UTF-8,这将导致字符损坏。

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

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

.

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 2011-03-13
    • 2011-01-04
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    相关资源
    最近更新 更多