読者です 読者をやめる 読者になる 読者になる

コピペコードで快適生活

明日使えるソースを自分のために

RubyでUTF-8変換時にUndefinedConversionが出た件

shift_jisで書かれたCSVUTF-8に変換して取り込み処理をするところで、Encoding::UndefinedConversionError が吐かれてた。

str.encode('utf-8', 'shift_jis') # => Encoding::UndefinedConversionError: "\x87@" from Shift_JIS to UTF-8


なんでだと思って調べてたところ、shift_jisでは対応していない①とか㈱とかの機種依存文字を変換しようとしていたからエラー出ていたみたい。なのでCP932(Windows-31J)使えば解決。

str.encode('utf-8', 'CP932') # => ①㈱