2

データ移行でメンバーデータベースを読み込もうとしています。かなりの数の名前に「Ciarán」などの特殊文字が付いています。私はこのような簡単な例を設定しました:

require 'rubygems'
require 'fastercsv'

FasterCSV.foreach("/Users/developer/Work/madmin/db/data/Members.csv") do |row|
  puts row.inspect
end

そして私は次のようになります:

/usr/local/lib/ruby/gems/1.8/gems/fastercsv-1.5.0/lib/faster_csv.rb:1616:in `shift': FasterCSV::MalformedCSVError (FasterCSV::MalformedCSVError)

この名前の行をヒットしたとき。

文字エンコードとUTF-8をグーグルで検索していますが、まだ解決策が見つかりません。特殊文字を保持したいのですが、失敗した各メンバー名を編集する必要はありません。

どうもありがとう、ブレット

4

2 に答える 2

4

私にとってはすぐに機能しますが、エンコーディングを変更する必要がある場合は、エンコーディングオプションをFasterCSVに渡すことができます。たとえば、UTF-8を使用するように指示するには、次のようにします。

require 'rubygems'
require 'fastercsv'

FasterCSV.foreach("some file.csv", :encoding => 'u') do |row|
  puts row.inspect
end

エンコーディングオプションは、のドキュメントに記載されていますnew

于 2009-08-25T14:28:45.340 に答える
3

これはKCODEを設定することで修正できることを他の場所で読んだことがあります。例えば:

$KCODE = "U"

これを上に貼り付けます。

ジェームズエドワードグレイはまた、彼がFasterCSVにエンコーディングサポートを追加したと言っていますが、それはトランクのみにあります。

于 2009-08-25T14:14:22.850 に答える