[Ruby] open-uri で utf-8 以外のページを文字変換して取得する

続き。

ターゲットが euc-jp だった場合の例。
mode を指定して読み込めるとのこと。

  begin
    html = open(uri, 'r:euc-jp',
      {:http_basic_authentication => [USER, PASSWORD],
       :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE}).read.encode('utf-8')

参考資料。

補遺

memo.

.charset で文字種別がとれるようだ。

open(uri) do |f|
  charset = f.charset # 文字種別を取得
end

Shift_JIS は、CP932指定とのこと。

OpenURI も Net::HTTP も charset をキレイにはとれないのかな。