0

Outlook のインポート (Outlook 形式へのエクスポートにリンク) に取り組んでいますが、エンコードに問題があります。LinkedIn の連絡先をエクスポートして取得した Outlook 形式の CSV は、UTF-8 ではありません。のような文字は、呼び出し時に gemñで例外を引き起こします。私が呼び出すとき(最初のコード例を参照)なので、エンコーディングが問題だと思います。これが gem のバグかどうかはわかりませんが、それでもデータをサニタイズするように勧められました。mongoid_searchstr.to_s.mb_chars.normalizemb_chars

File Picker から、コミュニティがサポートする新しい gem を使用して CSV データをアップロードしてみました。3 つのエンコード検出器とトランスコーダーを試しました。

  1. Python lib の Ruby ポートchardet
    • 期待どおりに機能しませんでした
    • ポートにはまだ Python コードが含まれていたため、アプリで実行できませんでした
  2. rchardet19宝石
    • 自信を持って検出iso-8859されます。.8/1
    • Iconv でトランスコードしようとしましたが、「不正な文字」でクラッシュしましたñ
  3. Charlock_Holmes宝石
    • 自信windows-1252を持って検出33/100
    • それが実際のエンコーディングだと思いますrchardetiso-8859、これはそれに基づいているためです。
    • この gem は ICU を使用し、Heroku をサポートするブランチ「bundle-icu」を維持しています。を使用してトランスコードしようとするとcharlockU_FILE_ACCESS_ERROR「ファイルを開けませんでした」という意味の ICU エラー コードが表示されます。

ここで何をすべきか知っている人はいますか?

4

1 に答える 1

2

Ruby 1.9 にはエンコーディングが組み込まれています。

s.force_encoding 'utf-8'

mb_chars は ruby​​ 1.8 のラッパーなので、必要ありません。

複製を見る

ruby 1.9で文字エンコーディングを変換する方法

于 2012-10-29T21:27:53.593 に答える