Google Apps 脚本 txt 文件 getDataAsString() returns � 和字符之间的方块符号
Google Apps script txt file getDataAsString() returns � and square symbols between characters
当前
我有一个 .txt
文件,其中包含一些数据:
Z Financial
Company name of the tax subject :
我有一个 google 脚本文件,用于从 .txt
获取数据并转换为 JSON 格式以粘贴到 Google Sheet(例如在 Google Sheet 中手动导入即可)
片段:
let files = folder.getFiles();
var file = files.next();
var raw = file.getBlob().getDataAsString();
console.log(raw);
var data = Utilities.parseCsv(raw)
问题
console.log(raw)
返回:
data
变量 returns 作为长度为 1 的数组,其值为:��
,没有别的。
从上面的 .txt
片段中,我(大致)期望一个长度为 3 的数组,其行如下:
- Z金融
- 纳税主体公司名称:
注释
- 将默认的
UTF-8
编码替换为 ISO-8859-1
并不能解决问题。 Returns:
问题
要将 txt 解析为 CSV,我缺少什么?
代码没有设置字符集。尝试使用正确的字符集。
var charset = 'ISO-8859-1'; // This is just a suggestion to try first
var raw = file.getBlob().getDataAsString(charset);
注意:OP 在评论中提到他们的文件使用的字符集是 UTF-16
。
参考
相关
Google Apps Script Utilities.parseCsv() and replacement character - �(先读这个)
How do I fix charset problems in .gs script?
Get encoding of a file in Windows
-
-
当前
我有一个 .txt
文件,其中包含一些数据:
Z Financial
Company name of the tax subject :
我有一个 google 脚本文件,用于从 .txt
获取数据并转换为 JSON 格式以粘贴到 Google Sheet(例如在 Google Sheet 中手动导入即可)
片段:
let files = folder.getFiles();
var file = files.next();
var raw = file.getBlob().getDataAsString();
console.log(raw);
var data = Utilities.parseCsv(raw)
问题
console.log(raw)
返回:
data
变量 returns 作为长度为 1 的数组,其值为:��
,没有别的。
从上面的 .txt
片段中,我(大致)期望一个长度为 3 的数组,其行如下:
- Z金融
- 纳税主体公司名称:
注释
- 将默认的
UTF-8
编码替换为ISO-8859-1
并不能解决问题。 Returns:
问题
要将 txt 解析为 CSV,我缺少什么?
代码没有设置字符集。尝试使用正确的字符集。
var charset = 'ISO-8859-1'; // This is just a suggestion to try first
var raw = file.getBlob().getDataAsString(charset);
注意:OP 在评论中提到他们的文件使用的字符集是 UTF-16
。
参考
相关
Google Apps Script Utilities.parseCsv() and replacement character - �(先读这个)
How do I fix charset problems in .gs script?
Get encoding of a file in Windows