Net::HTTP.getやURI.openで取得したテキストデータはデフォルトでASCII-8BIT(バイナリまたはバイトストリームとしても知られています)として扱われる。
これをUTF-8に変換するにはtext.encode("UTF-8")
では文字化を起こす可能性がある。
text.encode("UTF-8", "Shift_JIS")
だと正しく変換できた。取得した文字列をrubyに何の文字コードとして認識させるかを伝えないといけない。
上記の場合text
に格納されている文字列がShift_JIS
でエンコードされていたのでそれを指定した。
encode("変換後の文字コード", "変換前の文字コード")
参考