Rubyはわかりませんが、次の場所でスクリプトを実行したいと思います。
D:/Heather/Ruby/lib/Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require ':そのようなファイルをロードできません-iconv(LoadError)
iconvコードにコメントを付けると、どういうわけか機能しますが、この部分を再コーディングできれば、はるかに良くなります。
return Iconv.iconv('UTF-8//IGNORE', 'UTF-8', (s + ' ') ).first[0..-2]
iconv
なし。どういうわけか、ここでString#encode
を使用できますか?
Iconvは1.9.3で廃止(削除)されました。まだインストールできます。
不明な場合の参考資料: https://rvm.io/packages/iconv/
ただし、次のことは行わず、使用することをお勧めします。
string.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "?")
String#scrubは、Ruby 2.1。
str.scrub(''),
str.scrub{ |bytes| '' }
Ruby 2.1を使用していないため、String#scrub
を使用できない場合、以下は、UTF-8で正しくエンコードされていない文字列のすべての部分を無視します。
string.encode('UTF-16', :invalid => :replace, :replace => '').encode('UTF-8')
エンコードメソッドはほぼ正確に望みどおりの動作をしますが、文字列がすでにUTF-8であると考えた場合、エンコードは何もしません。したがって、UTF-8でエンコードできるUnicode文字の完全なセットをエンコードできるエンコードを経由して、エンコードを変更する必要があります。 (そうしないと、そのエンコーディングに含まれていない文字が破損します-7ビットASCIIは本当に悪い選択です!)
私は1行のstring.encodeを単独で使用するさまざまなアプローチに成功していません
しかし、私はMRI 2.1以前のString#scrubを実装するバックフィル、またはそれを持たない他のルビーを書きました。