Google Apps Script ReferenceError: TextEncoder is not defined

Google Apps Script ReferenceError: TextEncoder is not defined

我正在尝试在 Apps 脚本中使用 TextEncoder:

const textEncoder = new TextEncoder("utf-8");
let str = "test";
alert(textEncoder.encode(str));

但是我收到了这个错误:

ReferenceError: TextEncoder is not defined

我猜 Apps 脚本不支持它。有没有办法在 Apps 脚本中使用 TextEncoder(也许我缺少参考),或者 'long way' 使用其他 JS 或 Apps 脚本命令执行上述代码?

我相信你的目标如下。

  • 您想将以下 Javascript 转换为 Google Apps 脚本。

      const textEncoder = new TextEncoder("utf-8");
      let str = "test";
      alert(textEncoder.encode(str));
    
    • 当此脚本为运行时,返回116,101,115,116

不幸的是,在 Google Apps 脚本中,new TextEncoder 无法使用。那么,在这种情况下,下面的示例脚本怎么样?

示例脚本:

function myFunction() {
  const str = "test";
  const res = Utilities.newBlob(str).getBytes();
  console.log(res) // [ 116, 101, 115, 116 ]
}
  • 在 Google Apps 脚本中,默认使用 UTF-8。

  • 当这个脚本为运行时,可以在log中看到[ 116, 101, 115, 116 ]的值

  • const res = Utilities.newBlob(str).getBytes()的情况下,返回twos-complement个8位有符号整数的数组。这适用于 Google Apps 脚本。

  • 如果要获取8位无符号整数数组,请修改如下。

    • 来自

        const res = Utilities.newBlob(str).getBytes();
      
    •   const res = [...Uint8Array.from(Utilities.newBlob(str).getBytes())];
      

参考文献: