使用 'atob' 命令时出错 - 无法在 'Window' 上执行 'atob':要解码的字符串未正确编码
Error using 'atob' command - Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded
我需要将 base64 字符串解码为 PDF 文件。我正在使用这段代码。但是window.atob命令总是报那个错误:Failed to execute 'atob' on 'Window': The string to decoded is not correctly encoded。
我知道文件是正确的,因为我已经使用一个将 base64 解码为 pdf 的网站对其进行了解码。
我不知道它是否有帮助,但我们正在使用 Aurelia 框架。
转换函数
function converBase64toBlob(content, contentType) {
contentType = contentType || '';
var sliceSize = 512;
var byteCharacters = window.atob(content); //method which converts base64 to binary
var byteArrays = [
];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {
type: contentType
}); //statement which creates the blob
return blob;
}
调用函数
self.blob = self.converBase64toBlob(result.contents[0].pdf.replace(/^[^,]+,/, ''), 'application/pdf');
self.blobURL = URL.createObjectURL(blob);
window.open(this.blobURL);
我找到了解决方案。 Api 返回带有字符“\”的 base64 字符串。所以我删除了所有这些,它工作得很好。
我需要将 base64 字符串解码为 PDF 文件。我正在使用这段代码。但是window.atob命令总是报那个错误:Failed to execute 'atob' on 'Window': The string to decoded is not correctly encoded。
我知道文件是正确的,因为我已经使用一个将 base64 解码为 pdf 的网站对其进行了解码。 我不知道它是否有帮助,但我们正在使用 Aurelia 框架。
转换函数
function converBase64toBlob(content, contentType) {
contentType = contentType || '';
var sliceSize = 512;
var byteCharacters = window.atob(content); //method which converts base64 to binary
var byteArrays = [
];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {
type: contentType
}); //statement which creates the blob
return blob;
}
调用函数
self.blob = self.converBase64toBlob(result.contents[0].pdf.replace(/^[^,]+,/, ''), 'application/pdf');
self.blobURL = URL.createObjectURL(blob);
window.open(this.blobURL);
我找到了解决方案。 Api 返回带有字符“\”的 base64 字符串。所以我删除了所有这些,它工作得很好。