Javascript unescape将汉字转换为不可读内容
我有一个SVG字符串,如下面的代码示例所示。我用它作为背景图像 要将其转换为图像,我将执行以下步骤: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示例中,它并没有改变上面的
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”?