如何在javascript中更改JSON文件的编码

时间:2013-04-05 12:06:20

标签: javascript jquery json utf-16

我使用flash CS6将动画导出到spritesheet。这给了我2个文件:一个png和一个json文件。

这是json的简化版本:

{"frames": 
{
    "movieclip 10000":
    {
        "frame": {"x":676,"y":0,"w":164,"h":280},
        "rotated": false,
        "trimmed": false,
        "spriteSourceSize": {"x":0,"y":0,"w":164,"h":280},
        "sourceSize": {"w":164,"h":280}
    },
    …
    "movieclip 10004":
    {
        "frame": {"x":671,"y":280,"w":164,"h":280},
        "rotated": false,
        "trimmed": false,
        "spriteSourceSize": {"x":0,"y":0,"w":164,"h":280},
        "sourceSize": {"w":164,"h":280}
    }
},
"meta": {
    "app": "Adobe Flash CS6",
    "version": "12.0.2.529",
    "image": "boom1 8B4 def.png",
    "format": "RGBA8888",
    "size": {"w":1024,"h":1000},
    "scale": "1"
}

这里没什么特别的。但该文件编码(根据textwrangler)UTF-16 Little Endian。 这在Chrome中没有任何问题,但在解析FF中的json时,我得到一个“parsererror”。

当我更改文件的编码时,它在firefox中没有任何问题。

所以这是我的问题 :(如何)我可以使用javascript更改编码?

这个片段是我加载json的方式:

$.ajax({
    type: "POST",
    url: this.json,
    scriptCharset: "utf-8",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(json) {
        that.jsonLoadHandler(json);
    },
    error: function (xhr, textStatus, errorThrown) {
        that.errorHandler(xhr, textStatus);
    }
});

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

而不是 contentType:“application / json; charset = utf-8” 仅限使用 contentType:“application / json;”这可能会解决您的问题。