Ruby on RailsでShift_JISのエンコードの罠にハマった

こんにちは、株式会社Pentagon代表の山本です。
https://pentagon.tokyo
当社では「アプリを駆使した事業を立ち上げたい」方のために、アプリの設計・デザイン・開発までまるっとサポートしています。
さて、
Ruby on Railsで外部のAPIを叩いていたのですが、レスポンスの中身がShift_JISにエンコードされていることに気が付きました。

“xB1\xB2\xB3\xB4\xB5\xBF”

こんな感じ。
読めませんね。
いろいろ試したのですが、下記のようにWindows-31Jを指定することで人が読める文字列に変換できました。


shift_jis_string.encode('UTF-8', 'Windows-31J', {
:invalid => :replace,
:undef   => :replace,
:replace => ' ',
})

参考:Ruby で Shift_JIS の Web ページを取得したらEncoding::UndefinedConversionError from Windows-31J to UTF-8 と言われた

採用情報はこちら
目次