2018年4月21日土曜日

ruby の open-uri で「encode: "\x87U" from Shift_JIS to UTF-8 (Encoding::UndefinedConversionError)」

概要

クロール先のサイトに機種依存文字が入っている場合などに発生します
例えば などがそれにあたります

環境

  • macOS 10.13.2
  • Ruby 2.4.1p111

対応方法

基本は shift_jis を指定していると思いますがその場合は別の文字コードを指定します
CP932 を指定します

html = open(url, "r:CP932").read.encode('utf-8')

こんな感じでエラーを回避することができます

0 件のコメント:

コメントを投稿