2

我使用 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);
    }
});

感谢您的时间。

4

1 回答 1

0

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

于 2013-04-12T08:24:18.307 回答