🐹
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 と言われた