Ruby

ある日「Unicode+BOMつきってやつでテキスト出力」してねって話がきたの。
よくよく聞いてみると、そうするとエクセルにポッと落とすだけで開くんだって。

サンプルをもらって確認してみたら、UTF-8(リトルエンディアン)+BOMだったのね。この形式でタブ区切りテキスト出力すれば、ぽんとエクセルに投げ込むだけでひらくっぽいのよね。

じゃあ、Rubyでやってみますか。

タブ区切りテキストの作り方は簡単だろうから、ここでは触れないわ。 s は配列で、中にはUTF-8で書かれたデータが入っているのね。outfileが出力先よ。

BOMっていうのはよくわからないけど、どうもファイルの先頭に「Unicodeだぜい」と識別するUnicode文字を埋め込むやり方みたいなのよね。

でもこれ想像つくと思うけど、たまに悪さするのよね。

たとえばコード変換でひっかかる事があるらしくて、このへん知らずにJava屋さんとかがCP932に変換しようとしてハマってる記事がたくさんひっかかるわ。こういうのは 多言語処理のおもしろエピソード(当人たちは笑えない) ってやつのひとつだから、ググッてみると面白いかも。

open(outfile,"w:UTF-16LE") do |w|
  w.write "\uFEFF" # BOM
  w.write s.join("\n")
end

これでイケると思うわ。


トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-08-10 (水) 16:05:50