0

テーブルを yaml ファイルにエクスポートすると、次のエラーが発生します。

Encoding::UndefinedConversionError: "\xC3" from ASCII-8BIT to UTF-8

これは、エラーを生成するコードです。

  File.open("#{Rails.root}/lib/users.yml", 'w') do |file|
    users = User.all
    YAML::dump(users, file)
  end

すべての User モデルのコンテンツ属性でこれを試してみました:

about_me.force_encoding("utf-8")
save

...どうやら無駄だったようです。エンコーディングを正しく強制しましたか? この問題を回避する別の方法はありますか? utf8 以外の文字を削除してもかまいません。どうやってやるの?

4

2 に答える 2

2

これにより、このエラーが修正されました:

myString.unpack('U*').pack('U*')
于 2013-03-07T21:23:10.323 に答える
1

https://github.com/astro/utf8cleanerを使用して、utf8 以外の文字を消去できます。str.encode('utf-8', :invalid => :replace, :replace => '') を試すことができますが、何らかの理由でうまくいきませんでした。File.open('file.yml', 'w:ASCII-8BIT') のように、ファイルを ASCII-8BIT で書き込むこともできます。

于 2012-10-10T23:39:03.200 に答える