最近Windows環境でスクレイピングしてて、「~」をShift_JISに変換すると、やたら
U+FF5E from UTF-8 to Shift_JIS (Encoding::UndefinedConversionError)
エラー連発するんで、の「U+FF5E」を手がかりにぐぐったら見つけました!
Route 477 – Ruby 1.9と波ダッシュ問題に関するメモ
波ダッシュ問題というらしい。。。
「~」をShift_JISに変換
# -*- coding: utf-8 -*- str = '~' puts str.encoding puts str.encode 'Shift_JIS'
encode': U+FF5E from UTF-8 to Shift_JIS (Encoding::UndefinedConversionError)
解決策は、Shift_JISをWindows-31Jにする!
「~」をWindows-31Jに変換
# -*- coding: utf-8 -*- str = '~' puts str.encoding puts str.encode 'Windows-31J'
UTF-8 ~
ここまで数日を費やしました。。。