Javascript unescape将汉字转换为不可读内容

Javascript unescape将汉字转换为不可读内容,javascript,svg,chinese-locale,Javascript,Svg,Chinese Locale,我有一个SVG字符串,如下面的代码示例所示。我用它作为背景图像 要将其转换为图像,我将执行以下步骤: var asImage = "data:image/svg+xml; base64," + window.btoa(unescape(encodeURIComponent(markupDataStr))); 但问题是,SVG包含一些中文文本測試。当我运行encodeURIComponent和unescape时,它会将中文文本转换为一些不可读的字符,如 但在这里的SO示例中,它并没有改变上面的

我有一个SVG字符串,如下面的代码示例所示。我用它作为背景图像

要将其转换为图像,我将执行以下步骤:

 var asImage = "data:image/svg+xml; base64," + window.btoa(unescape(encodeURIComponent(markupDataStr)));
但问题是,SVG包含一些中文文本
測試。当我运行
encodeURIComponent
unescape
时,它会将中文文本转换为一些不可读的字符,如

但在这里的SO示例中,它并没有改变上面的文本。我是不是遗漏了什么

var str=window.holder.value;
var asImage=“data:image/svg+xml;base64,”+unescape(encodeURIComponent(str));
console.log(str)

t4mkgl35yhm5y
測試

使用
encodeURIComponent
编码时,使用
decodeURIComponent
解码

使用
escape
编码时,使用
unescape
解码

因此,
unescape(encodeURIComponent(markupdateasr))
应该是
decodeURIComponent(encodeURIComponent(markupdateasr))


顺便说一句,不建议使用
escape

我现在收到这个错误
Uncaught(in promise)DOMException:无法在“Window”上执行“btoa”:要编码的字符串包含拉丁1范围以外的字符。
@Adapter您是否将“Window”误认为“Window”?