Google apps script 实用程序Base64编码与Base64解码方法

Google apps script 实用程序Base64编码与Base64解码方法,google-apps-script,base64,decode,utilities,Google Apps Script,Base64,Decode,Utilities,为什么base64Decode无法解码base64Encode刚刚编码的内容 function test_base64encoding_decoding() { var file = DriveApp.getFileById("<google drive png file id>"); // Encode file bytes as a string var base64EncodedBytes = Utilities.base64Encode(file.getBl

为什么base64Decode无法解码base64Encode刚刚编码的内容

function test_base64encoding_decoding() {
  var file = DriveApp.getFileById("<google drive png file id>");

  // Encode file bytes as a string  
  var base64EncodedBytes = Utilities.base64Encode(file.getBlob().getBytes(), Utilities.Charset.UTF_8);

  // Decode string
  var bytes = Utilities.base64Decode(base64EncodedBytes, Utilities.Charset.UTF_8);

  // create new file
  var blob = Utilities.newBlob(bytes, file.getMimeType(), file.getName() + ".copy.png");
  file.getParents().next().createFile(blob);
}
功能测试\u base64编码\u解码(){
var file=DriveApp.getFileById(“”);
//将文件字节编码为字符串
var base64EncodedBytes=Utilities.base64Encode(file.getBlob().getBytes(),Utilities.Charset.UTF_8);
//解码字符串
var bytes=Utilities.base64Decode(base64EncodedBytes,Utilities.Charset.UTF_8);
//创建新文件
var blob=Utilities.newBlob(字节,file.getMimeType(),file.getName()+“.copy.png”);
file.getParents().next().createFile(blob);
}
此google应用程序脚本从现有google drive源文件检索字节,并将这些字节转换为base64编码字符串(base64EncodedBytes)。然后,它将字符串转换回普通字节数组,并在同一文件夹中创建一个全新的文件

现在,如果我们在Google Drive中查看最终结果,我们可以看到复制的文件(后缀为“.copy.png”的文件)没有相同的大小,并且已经损坏


这种编码/解码API用法有什么问题?

不使用字符集对文件进行编码。当您编码字符串时,字符集是有意义的,但对于文件(如本例中的文件),您应该将其编码并解码为“常规”字符集。
尝试:

看看它是否适合你

Utilities.base64Encode(file.getBlob().getBytes()); 
Utilities.base64Decode(base64EncodedBytes);