GASのCSV出力は(日本語を含む場合)、文字コードにShift-JISを指定しないと文字化けする


やったこと

blobでcsvを生成するときに、newBlobで一回空のblobを作ってから、setDataFromStringでcsvテキストの実体と文字コードを指定する

コード

exportCsv.gs

function exportCsv(){
  let nowDate = new Date();
  let values = sheet_master.getRange(NUM_FIRSTROW-1, 2, sheet_master.getLastRow() -NUM_FIRSTROW +1, 11).getDisplayValues();

  //セル配列をカンマ区切りに書き換え
  let csv = "";
  for(let i=0; i<values.length; i++){
    csv += values[i].join(",") + "\r\n";
  }//end for

  //ここで文字コードを指定
  let csvBlob = Utilities.newBlob("", MimeType.CSV, "吐き出したCSV.csv").setDataFromString(csv, "Shift_JIS");
  csvFolder.createFile(csvBlob);
}//end function

経緯

日本語を含むcsvを作ろうとするときだけ文字化けする。
毎回出力したcsvをエクセルで開いては「なんだこれ文字化けしてんぞ」ってやってコード書き直してたので書き殴りレベルだけどメモ。