如何在Google Apps Script中正确导出Shift-JIS编码的CSV文件?
解决Google Apps Script导出Shift-JIS编码CSV字符乱码问题
你的代码问题出在双重编码处理上:先通过Utilities.newBlob(csvContent, 'text/csv')用默认UTF-8编码生成Blob,再调用setDataFromString转Shift-JIS,这会导致部分字符在两次编码转换中损坏。
直接按下面的方式修改代码,就能正确生成Shift-JIS编码的CSV:
function exportToCSV() { var csvContent = '歳以上,三井ホームコンポーネント㈱・横浜 -- HLⅢ 片流れ・ジョイント水切り250 2個入 B'; // 先创建空Blob,再直接指定Shift-JIS编码写入内容,避免双重编码 var shiftJisBlob = Utilities.newBlob('') .setDataFromString(csvContent, 'Shift_JIS') .setContentType('text/csv') .setName('data_shiftjis.csv'); var file = DriveApp.createFile(shiftJisBlob); Logger.log('File CSV : ' + file.getUrl()); }
额外注意两点:
- Shift-JIS字符集有局限性,不支持部分生僻Unicode字符,如果你的CSV里有这类字符,它们会被替换成
?或直接丢失,需要提前替换为Shift-JIS兼容的字符。 - 用Notepad++打开文件时,手动选择「编码」→「Shift-JIS」,避免软件自动检测编码错误导致显示异常。
内容的提问来源于stack exchange,提问作者D T
相关产品推荐
相关产品推荐

