Pocket

RubyでCSVファイルを読み込む際にエラーが出ていたのでその解決策です。

エラー内容

RubyのCSV読み込み機能を使ったときに

”invalid byte sequence in Windows-31J (ArgumentError)”

とエラーが出てきた時は文字コードのエラーです。

 

解決策

読み込むファイルの文字コードを指定すればエラーが出なくなります。
具体的には

CSV.foreach(“csvfile.csv”, “r:UTF-8”) {|row| p row }

といった具合に文字コードを指定してやればOKのようです。
上記の例はUTF-8で記述されたファイルを読み込む場合です。

 

細かい話

このエラーはWindows特有かも。
早く世界中のテキストファイルがUTFで統一されればいいなぁ。

Pocket