機械化されたlibを使用すると、一部のWebページでIconv :: IllegalSequenceエラーが発生しました。機械化して、エンコードされた文字を省略し、「切り取った」ページを返す方法はありますか?私はrelated threadを知っていますが、私はむしろページ上のいくつかの文字を破棄して、エンコーディング推測を再実装したいと思います。 TIARubyを使用中にIconv :: IllegalSequenceを無視します。WWW :: Mechanize
が
4
A
答えて
6
溶液を
Iconv.iconv("#{code}//IGNORE", "UTF-8", s).join("")
又は
Iconv.conv("#{code}//IGNORE", "UTF-8", s)
+0
混合エンコードには '// TRANSLIT // IGNORE'を使うことも考えてください。 チェックhttps://github.com/zdavatz/spreadsheet/issues/17および http://ruby.11.x6.nabble.com/Reliable-character-encodings-conversion-td3332842.html – Khaled
1
よりよい解決策に
Iconv.iconv(code, "UTF-8", s).join("")
からutil.rbにライン40を変更することであるutil.rbのソースを変更されていません自分のコードに次のようなコードを追加してください:
Mechanize::Util.send(:define_method, 'self.encode_to') { |*args|
encoding = args[0]
str = args[1]
if NEW_RUBY_ENCODING
str.encode(encoding)
else
Iconv.conv(encoding.to_s + '//IGNORE', "UTF-8", str)
end
}
関連する問題
- 1. Mechanize Iconv :: POSTクエリを形成しようとするとIllegalSequence
- 2. WWW :: Mechanize and iteration
- 3. 無名のフォームで無名のフォームにwww :: mechanizeでログイン
- 4. WWW :: Mechanizeテキストフィールド問題
- 5. WWW :: Mechanizeを使用してリンクにアクセスする際にエラーが発生する
- 6. MechanizeでRubyを使用してウェブサイトにログインする
- 7. WWW :: Mechanizeの出力の使い方は?
- 8. Perl WWW :: Mechanize資格情報
- 9. matlabを使用してテキストファイルの途中にヘッダ行を無視します
- 10. WWW :: Mechanizeのとイチゴperlの
- 11. wwwをURLに追加しますが、mは無視します。サブドメイン
- 12. WWW :: Mechanizeタイムアウト - すべてのURLがタイムアウトします
- 13. iconvを使用して繁体字中国語を簡体字中国語に変換する
- 14. Python mechanize - set_proxiesメソッドはプロキシを無視して何もしません
- 15. wwwを使用してサブドメインをリダイレクトします。 to without www
- 16. Ruby :: Mechanize :: cookie_jar
- 17. Perl WWW :: Mechanize from文字列変数
- 18. svn:無視する - コミット中に無視するためだけに、または更新中にもそれを無視しますか?
- 19. PerlのWWW :: Mechanizeの:: Firefoxのチェックボックスのチェックマーク
- 20. Ruby Mechanizeを使用してFlashによるファイルのアップロードをシミュレートする
- 21. PerlのWWW :: MechanizeのJSESSION問題
- 22. Ruby Mechanize Connectionがタイムアウトしました
- 23. WWW :: Mechanizeを使ってHTMLにないフォームを送信するには?
- 24. Ruby Mechanize:リンクに従います
- 25. デシリアライズ中にプロパティを無視する
- 26. CRUDはAdd中に$ display_fieldを無視します
- 27. MechanizeとSSLError in Ruby
- 28. Rubyがレスキューを無視するArgumentError
- 29. jQueryは、最初の使用後に.replace()を無視します
- 30. RubyでMechanizeを使用してラジオボタンを選択する方法は?
ありがとうございました! –