0

(Ruby 2.5) Alchemy CMS 経由でアップロードされている csv ファイルを読み取って解析するメソッドがあります。

def process_csv(csv_file, current_user_id, original_filename)
    lock_importer

    errors           = []
    index            = 0
    string_converter = lambda { |field| field.strip }
    total            = CSV.foreach(csv_file, headers: true).count
    csv_string = csv_file.read.encode!("UTF-8", "iso-8859-1", invalid: :replace)

    CSV.parse(csv_string, headers: true, header_converters: :symbol, skip_blanks: true, converters: [string_converter] ) do |row|
    # do other stuff
end

しかし、特殊文字を含む文字列を持つ列 (名前) を持つ csv ファイルをアップロードしようとすると、Invalid Byte Sequence in UTF-8エラーが発生します。値をテストしようとしていますN'öt Réal Stô'rë

Web で見つけた解決策をいくつか試しましたが、うまくいきませんでした。何か提案はありますか?

4

1 に答える 1