如何在 JAVASCRIPT 中对原始 PDF 内容(字节)进行 base64 编码?
How to base64 encode a raw PDF content (bytes) in JAVASCRIPT?
我需要对原始 PDF 的内容进行 base64 编码(已经获得原始内容)。
但我不知道为什么,但 btoa() 期望输入是一个 ASCII 字符组成的字符串。
btoa('ééééééé');
>> InvalidCharacterError: String contains an invalid character
有没有什么方法可以在 javascript 中将原始字节转换为 base64 而无需重新编码 base64 算法? (顺便说一下,处理图像和任何文件内容)
预先感谢您的回答!
[
如果您将内容存储为 Blob
,请使用 FileReader
对象将其转换为数据 URI,然后删除其前缀:
var reader = new FileReader();
reader.onload = function () {
var b64 = reader.result.replace(/^data:.+;base64,/, '');
console.log(b64);
};
reader.readAsDataURL(your_blob);
另一种方式,如果您将其存储为 ArrayBuffer
:
// Create a Uint8Array from ArrayBuffer
var codes = new Uint8Array(your_buffer);
// Get binary string from UTF-16 code units
var bin = String.fromCharCode.apply(null, codes);
// Convert binary to Base64
var b64 = btoa(bin);
console.log(b64);
我需要对原始 PDF 的内容进行 base64 编码(已经获得原始内容)。 但我不知道为什么,但 btoa() 期望输入是一个 ASCII 字符组成的字符串。
btoa('ééééééé');
>> InvalidCharacterError: String contains an invalid character
有没有什么方法可以在 javascript 中将原始字节转换为 base64 而无需重新编码 base64 算法? (顺便说一下,处理图像和任何文件内容)
预先感谢您的回答!
[
如果您将内容存储为 Blob
,请使用 FileReader
对象将其转换为数据 URI,然后删除其前缀:
var reader = new FileReader();
reader.onload = function () {
var b64 = reader.result.replace(/^data:.+;base64,/, '');
console.log(b64);
};
reader.readAsDataURL(your_blob);
另一种方式,如果您将其存储为 ArrayBuffer
:
// Create a Uint8Array from ArrayBuffer
var codes = new Uint8Array(your_buffer);
// Get binary string from UTF-16 code units
var bin = String.fromCharCode.apply(null, codes);
// Convert binary to Base64
var b64 = btoa(bin);
console.log(b64);