Outlook のインポート (Outlook 形式へのエクスポートにリンク) に取り組んでいますが、エンコードに問題があります。LinkedIn の連絡先をエクスポートして取得した Outlook 形式の CSV は、UTF-8 ではありません。のような文字は、呼び出し時に gemñ
で例外を引き起こします。私が呼び出すとき(最初のコード例を参照)なので、エンコーディングが問題だと思います。これが gem のバグかどうかはわかりませんが、それでもデータをサニタイズするように勧められました。mongoid_search
str.to_s.mb_chars.normalize
mb_chars
File Picker から、コミュニティがサポートする新しい gem を使用して CSV データをアップロードしてみました。3 つのエンコード検出器とトランスコーダーを試しました。
- Python lib の Ruby ポート
chardet
- 期待どおりに機能しませんでした
- ポートにはまだ Python コードが含まれていたため、アプリで実行できませんでした
rchardet19
宝石- 自信を持って検出
iso-8859
されます。.8/1
- Iconv でトランスコードしようとしましたが、「不正な文字」でクラッシュしました
ñ
- 自信を持って検出
Charlock_Holmes
宝石- 自信
windows-1252
を持って検出33/100
- それが実際のエンコーディングだと思います
rchardet
がiso-8859
、これはそれに基づいているためです。 - この gem は ICU を使用し、Heroku をサポートするブランチ「bundle-icu」を維持しています。を使用してトランスコードしようとすると
charlock
、U_FILE_ACCESS_ERROR
「ファイルを開けませんでした」という意味の ICU エラー コードが表示されます。
- 自信
ここで何をすべきか知っている人はいますか?