You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:将Google Drive导出的UTF-8文本转Windows(CRLF)ANSI格式

解决方案:导出Windows-1252(ANSI)+CRLF格式文本

方案一:修改Google Apps Script直接导出目标格式(推荐)

从源头解决问题,调整脚本让导出文件直接匹配VB程序要求的「Windows(CRLF)|ANSI(Windows-1252)」格式:

1. 修正换行符(_getData函数)

将行分隔符从UNIX风格的\n替换为Windows标准的\r\n:

function _getData( sheet ){
  var numRows = sheet.getDataRange().getNumRows();
  var data;
  var txt = "";

  try {
      data = sheet.getDataRange().offset( 1, 0, numRows - 1).getDisplayValues(); 
      // 替换换行符为Windows CRLF格式
      txt = data.map(function (col) {return col.join('\t');}).join('\r\n'); 
      
  }catch( err) {
    Logger.log(err);
    Browser.msgBox('Erreur : ' + err);
  }
  finally{
    return txt;
  }
}

2. 指定Windows-1252编码(createDatFile函数)

核心是创建Blob时明确指定编码为Windows-1252,同时补全原有TODO的文件覆盖逻辑:

function createDatFile( extractName, data ){
  var blob;
  var directory;
  var fileName = extractName + ".DAT";
  var file;
  
  try{
    directory = DriveApp.getFolderById(''); // 填入你的共享目录ID
    // 创建指定编码的Blob
    blob = Utilities.newBlob('', MimeType.PLAIN_TEXT, fileName)
                   .setDataFromString(data, "Windows-1252");
    // 删除已存在的同名文件
    var existingFiles = directory.getFilesByName(fileName);
    while(existingFiles.hasNext()){
      existingFiles.next().setTrashed(true);
    }
    // 直接用Blob创建文件,避免转码丢失
    file = directory.createFile(blob);

    return file;

  }catch(err){
    Logger.log("Erreur : " + err);
    Browser.msgBox("Erreur : " + err)
  }
}

3. 主函数无需修改

原exportToTextFile函数保持原样即可,修改后导出的文件会直接满足VB程序的格式要求。


方案二:本地转换(Bash/PowerShell)

如果无法调整GAS脚本,可在本地完成编码和换行符转换:

PowerShell 正确命令

之前Set-Content无效是因为未处理换行符,使用以下命令同时转换编码和换行格式:

# 读取UTF-8文件,转换为Windows-1252,同时将LF转为CRLF
Get-Content "C:\Input\file.txt" -Encoding UTF8 | Out-File "C:\Output\file.txt" -Encoding Default -NewLine "`r`n"

注:PowerShell中的Default编码对应系统默认ANSI编码(西语系系统为Windows-1252)。

Bash(Git Bash/WSL)方案

使用iconv转换编码,unix2dos转换换行符:

# 先转编码为Windows-1252,再转换换行符为CRLF
iconv -f UTF-8 -t WINDOWS-1252 input.txt > temp.txt
unix2dos temp.txt
mv temp.txt output.dat

内容的提问来源于stack exchange,提问作者BigBenne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:05:25