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())];
参考文献:
我正在尝试在 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())];