Excelで保存した顔文字が含まれているCSVの読み込みに失敗します。


以下、エラーが出るスクリプト

>|ruby|>
#!/usr/bin/ruby
require "csv"
require "nkf"

file=ARGV[0]
text_s = open(file,"rb").read

text = NKF.nkf("-w -Lu",text_s)
csv = CSV.parse(text)

csv.each do |line|
puts line
end
<<

System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:116:in `exist?': string contains null byte (ArgumentError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:116:in `parse'
from ./load_csv.rb:9


rails上でファイルのアップロードをする関係上、「text_s = open(file,"rb").read」の行は必ず無いといけません。また、一旦ファイルに出力する等の手段もできれば取りたくありません。どうすれば動くでしょうか。

回答の条件
  • 1人2回まで
  • 登録:2009/11/25 14:59:10
  • 終了:2009/11/26 10:12:52

回答(1件)

id:chyopper No.1

chyopper回答回数416ベストアンサー獲得回数692009/11/25 20:10:30

ポイント100pt

Excelが作るCSVファイルの文字コードはShiftJISなので

文字コードを明示してみてはどうでしょうか。

text = NKF.nkf("-Sw -Lu",text_s)

id:tomity

上手くいきました。SHIFT-JISと認識されていなかったのですね。。。。。

ありがとうございました

2009/11/26 10:12:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません