如何在Google Apps Script中创建Windows-1250编码的TXT文件?
如何在Google Apps Script中创建Windows-1250编码的TXT文件
确实,DriveApp的createFile方法直接写入文本时默认用UTF-8编码,官方文档里也没有直接设置编码的参数,但我们可以通过Blob对象的字节转换来实现Windows-1250编码的文件生成,具体步骤如下:
核心思路
Google Apps Script的Utilities类可以处理文本和字节的编码转换:先将目标文本转换为Windows-1250编码的字节数组,再用这些字节创建指定编码的Blob,最后将Blob保存为文件。
完整代码示例
function saveAsWindows1250Txt() { // 1. 从Google Sheets获取内容(这里用示例逻辑,替换成你的实际获取代码) const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const content = sheet.getDataRange().getValues().map(row => row.join("\t")).join("\n"); // 2. 将文本转换为Windows-1250编码的字节数组 const utf8Blob = Utilities.newBlob(content); const windows1250Bytes = utf8Blob.getBytes("Windows-1250"); // 3. 创建指定编码的Blob并保存为文件 const targetBlob = Utilities.newBlob( windows1250Bytes, "text/plain;charset=Windows-1250", "sheet_content_1250.txt" // 自定义文件名 ); // 保存到Google Drive根目录(可修改为指定文件夹) DriveApp.createFile(targetBlob); }
关键细节解释
utf8Blob.getBytes("Windows-1250"):默认创建的Blob会把文本当作UTF-8处理,调用getBytes并传入目标编码,就能将文本转换为对应编码的字节序列。- 生成Blob时指定MIME类型为
text/plain;charset=Windows-1250:确保文件的元数据标记正确的编码,这样下载后文本编辑器能自动识别编码格式。 - 字符兼容性提醒:如果你的文本包含Windows-1250编码不支持的Unicode字符,这些字符会被替换为
?或其他替代字符,建议提前确认内容中的字符是否在1250编码范围内。
验证方法
生成文件后,你可以用Notepad等工具打开,查看文件编码(Notepad的「编码」菜单中会显示当前文件的编码),确认是否为Windows-1250。
内容的提问来源于stack exchange,提问作者Peter222
相关产品推荐
相关产品推荐

