当社では、Google SpreadsheetとGoogle App Script(以下GAS)を使って、様々なデータを管理しています。
そしてそこから佐川郵便の送り状を作成する「e飛伝Ⅱ」用のCSVや、ゆうパックのシールを作成する「ゆうプリR」用のCSVや、カスタマーサービスがお客様からのご質問・ご確認にこたえるためのログ情報などの、各種の用途のためのファイルをGASを使ってGoogle Drive内に生成しています。
その際に、なんの指定もせず、
DriveApp.createFile(filename, data, MimeType.CSV);
とすれば、UTF-8のCSVファイルが生成されます。
しかし、e飛伝ⅡやゆうプリRは、今時Shift_JISしか受け付けていないのです。UTF-8のファイルを読み込ませようとすると、「バイナリーが含まれているので読み込めません」という。
思わず汚い言葉をディスプレイに投げかけそうになりましたが、ぐっとこらえます。そういう世界で作られたアプリケーションなのでしょう。
では、GASを使って、Google Drive内にShift_JISのファイルを生成しましょう。
var blob = Utilities.newBlob("", "text/csv", filename);
blob.setDataFromString(data, "Shift_JIS");
DriveApp.createFile(blob);
簡単ですね。
できればShift_JISのファイルなんか触らないでいられる世界に住みたいですが、なかなか実現しそうにはありません。