【Ruby1.9】「~」が変換時エラーになっちゃう場合の解決策!U+FF5E from UTF-8 to Shift_JIS (Encoding::UndefinedConversionError)

このエントリーをはてなブックマークに追加
はてなブックマーク - 【Ruby1.9】「~」が変換時エラーになっちゃう場合の解決策!U+FF5E from UTF-8 to Shift_JIS (Encoding::UndefinedConversionError)
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
【Ruby1.9】「~」が変換時エラーになっちゃう場合の解決策!U+FF5E from UTF-8 to Shift_JIS (Encoding::UndefinedConversionError)ぐるらん

最近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
~

ここまで数日を費やしました。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>