るびきち様 レスありがとうございました。

色々試してみた所、解決しました。
なぜか $/ の値がnilに設定されており、それが原因で改行無しのCSVが出力され
ていました。
ruby 1.9.1 を再インストールした所、$/ が "/n"になったので、同じスクリプ
トでも正しくCSVが出力されるようになりました。

なぜ $/ の値が nil になってしまっていたのかは不明です。今回再インストー
ルに使ったActiveScriptRuby 1.9.1も再インストール前に使った
ActiveScriptRuby 1.9.1も同じバイナリなので、どうして$/ が変化したのか不
思議です。

> Windows上のShift_JISならば、cp932 や windows-31j を指定するのが無難です。
今後はwindows-31jを指定する事にします。

ありがとうございました。

rubikitch / ruby-lang.org さんは書きました:
> From: Masashi Fujiwara <mail / masashi-fujiwara.net>
> Subject: [ruby-list:46370] ruby 1.9 でのCSVファイルの書き出しについて
> Date: Tue, 8 Sep 2009 13:17:02 +0900
> 
> るびきちです。
> 
> # 誰からも返答がないのでとりあえず手がかりだけでも…
> 
>> ---test.csv-----
>> a,b,dあ,い,う
>> ----------------
>> という改行が挿入されない形で出力されてしまいます。
> 
> こちら(Debian GNU/Linux)では意図通りの動作をします。
> 
> # -*- coding: cp932 -*-
> require 'csv'
> # 確かに標準ライブラリのcsv.rbが読み込まれている
> $".grep(/csv/)                  # => ["/usr/local/lib/ruby/1.9.1/csv.rb"]
> 
> CSV.open('test.csv', "w") do |writer|
>   writer << ["a", "b", "d"]
>   writer << ["あ", "い", "う"]
> end
> puts File.read('test.csv')
> # >> a,b,d
> # >> あ,い,う
> 
> そちらの環境で標準ライブラリ版のcsv.rbが読み込まれていますか?
> 
>> # coding: Shift_JIS
> 
> Windows上のShift_JISならば、cp932 や windows-31j を指定するのが無難です。
> 
>> ruby 1.8.7では意図通り動くので、1.9では使用方法などが変わったのでしょうか。
> 
> csv.rbなRuby 1.9で別実装に切り替わっています。
> なるべく互換性を保つように設計されていますが、一部で非互換が発生します。。
> 
> --
> rubikitch
> Blog: http://d.hatena.ne.jp/rubikitch/
> Site: http://www.rubyist.net/~rubikitch/
> Twit: http://twitter.com/rubikitch/
> 『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook
> 


-- 
藤原 眞至 <mail / masashi-fujiwara.net>