创建没有 BOM google 应用程序脚本的文本文件

Create text file without BOM google apps script

我正在尝试在 Google 驱动器中创建一个文本文件,该文件将由另一个程序读取以实现自动化。但是,如果我通过 Google 脚本创建文本文件,文本将具有 BOM,这使得自动化非常不可靠。 我目前正在使用

var textFile = jobFolder.createFile(aFileName, fileContent,MimeType.PLAIN_TEXT)
var textFile = jobFolder.createFile(aFileName, fileContent)

使用 Google App Script 创建没有 BOM 的文本文件的方法是什么?

在UTF-8的BOM数据中,EF BB BF被添加到数据的最前面。在这种情况下,我认为删除前 3 个字节是为了实现您的目标。那么下面的修改呢?

发件人:

var textFile = jobFolder.createFile(aFileName, fileContent,MimeType.PLAIN_TEXT)

收件人:

var [,,,...newData] = Utilities.newBlob(fileContent).getBytes();
var blob = Utilities.newBlob(newData, MimeType.PLAIN_TEXT, aFileName);
var textFile = jobFolder.createFile(blob);
  • 本次修改假设fileContent为BOM的文本数据。请注意这一点。
  • 在这种情况下,请声明 aFileNamejobFolder 的值。请注意这一点。
  • 在这个修改后的脚本中,newData是去掉前3个字节的数据

注:

  • 如果您的fileContent数据不是UTF-8,请查看Byte order mark (BOM)的wiki。从这个wiki,可以确认排名靠前的人物。

参考文献:

已添加:

根据您的以下回复,

I have error on this line var [,,,...newData] = Utilities.newBlob(fileContent).getBytes();. Maybe because my Google App Script is the older version. What can I try for this?

我了解到您没有使用 V8 运行时。在这种情况下,下面的脚本怎么样?

示例脚本:

var newData = Utilities.newBlob(fileContent).getBytes();
newData.splice(0, 3);
var blob = Utilities.newBlob(newData, MimeType.PLAIN_TEXT, aFileName);
var textFile = jobFolder.createFile(blob);