将JS对象下载为JSON文件时,停止浏览器解码编码字符串



我试图将JS代码片段存储为JSON,方法是首先将该片段存储在JS对象中,然后将该对象下载为JSON文件。我可以使用encodeURI对JS进行精细编码

例如:

encodeURI("var a = 100")

它给出了一个很好的编码字符串:

"var%20a%20=%20100"

它可以存储在JS对象中,如下所示:

data = {
"code" : "var%20a%20=%20100"
}

但是如果我将这个对象下载为JSON:

var link = document.createElement("a");
link.download = 'my_file.json';
link.href = "data:json," + JSON.stringify(data);
document.body.appendChild(link);
link.click();

下载的文件在打开文件时显示一个解码的片段,这使得JSON无效。

我正在使用Chrome浏览器。浏览器在将JS对象下载为JSON文件时会自动解码编码字符串吗?

事实证明,为了在下载的JSON文件中保留编码,我必须同时使用encodeURIComponentencodeURI

encodeURIComponent(encodeURI( // the code snippet

相关内容

最新更新