1

レポートに問題があります(仕様テストでモデルをカバーしています)。私の宝石:

group :development, :test do
  gem 'factory_girl_rails', '3.4.0'
  gem 'rspec-rails', '2.11.0'
  gem 'guard-rspec', '1.2.0'
  gem 'guard-bundler', '1.0.0'
  gem 'guard-cucumber'
  gem "shoulda-matchers", '1.1.0'
end

group :test do
  gem 'simplecov', :require => false
  #gem "simplecov-rcov", "~> 0.2.3"
gem 'cucumber-rails', require: false
  gem 'database_cleaner'
  gem "capybara"
  gem 'json_spec'
end

エラーメッセージ:

Finished in 1.21 seconds
9 examples, 0 failures
/var/lib/gems/1.9.1/gems/json-1.7.5/lib/json/common.rb:285:in `encode': "\xD1" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
    from /var/lib/gems/1.9.1/gems/json-1.7.5/lib/json/common.rb:285:in `generate'
    from /var/lib/gems/1.9.1/gems/json-1.7.5/lib/json/common.rb:285:in `pretty_generate'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov/result_merger.rb:77:in `block in store_result'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov/result_merger.rb:75:in `open'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov/result_merger.rb:75:in `store_result'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov.rb:48:in `result'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov/configuration.rb:133:in `block in at_exit'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov/defaults.rb:51:in `call'
    from /var/lib/gems/1.9.1/gems/simplecov-0.6.4/lib/simplecov/defaults.rb:51:in `block in <top (required)>'

これはどのように解決できますか?助けてください!

更新
私がやったこと:1)すべてのgemをアンインストールして再インストールしましたhttp://axonflux.com/uninstalling-and-reinstalling-all-ruby-gems
2).rvnディレクトリを削除しました
3)いくつかのgemをコメントアウトしました

group :development do
#  gem 'growl'
group :test do
# gem 'json_spec'
  gem 'simplecov', :require => false
  #gem "simplecov-rcov", "~> 0.2.3"

4) rvn
をこれらのステージのいずれにもインストールできませんでした ....
問題のあるキャラクターがどこにいるかを正確に見つけなければなりません!

UPDATE
Encoding.default_external = :'ASCII-8BIT' | の設定を試みました。:boot.rb の「UTF-8」。運がない

UPDATE スクリプトを実行して問題を解決しようとしています

  #!/bin/bash
    FROM=us-ascii
    TO=UTF-8
    ICONV="iconv -f $FROM -t $TO"
    # Convert
    find gazsev32/ -type f -name "*" | while read fn; do
    cp ${fn} ${fn}.bak
    $ICONV < ${fn}.bak > ${fn}
    rm ${fn}.bak
    done

更新
結局、システムを再インストールする時が来たのではないかと心配しています。システムエラーが続きました

4

1 に答える 1

1

UTF-8エンコーディング

あなたの痕跡は言う:

/var/lib/gems/1.9.1/gems/json-1.7.5/lib/json/common.rb:285:in `encode':" \ xD1 "from ASCII-8BIT to UTF-8(Encoding :: UndefinedConversionError)

これは明らかにエンコーディングエラーであり、Ruby1.9でよくある問題です。次のことを確認することで解決できる場合があります。

# encoding: utf-8

ソースファイルの上部にありますが、そうでない場合は、コードをJSONに変換する前に、シェルから/ usr / bin / iconvを使用するか、Rubyの総当たり攻撃で問題のある文字を削除する必要があります。問題は明らかにJSONライブラリにありますが、問題のある文字はおそらくソースの他の場所にあります。

于 2012-10-25T13:02:00.750 に答える