ネットの海の片隅でスマートフォン用の表示で見るネットの海の片隅で技術ネタの放流、あるいは不法投棄。2014-08-21String#encodeが変換できそうで変換できない文字Ruby問題RubyでUTF-8からWindows-31J(Shift_JIS)に文字コードを変換すると、正常に変換できそうであるにもかかわらず、実際には変換が行えず例外が投げられる文字があります。あたりがわかりやすいです。例外が投げられる文字はたとえば以下の様なものがあります。波ダッシュ解決法1String#encodeにオプションを渡します。""例外を吐かなくなるという点では問題が解決しますが、困ることもあります。?季節のフルーツを添えて?"せっかくのステキな料理名が台無しですね。解決法2Shift_JISに変換できるUTF-8の文字に置換します。~季節のフルーツを添えて~"これで料理名をステキなまま保つことができます。上記解決法の問題:だるいいちいちString#gsubで置き換えたりするのは面倒なので、この辺をあまり意識せずに扱えるようにするgemでも書こうかと思いましたが、良い実装方法が思いつきませんでした。良い案をお待ちしております。この問題の遠因あるいは蛇足この変換エラーですが、個人的なケースとしては、Shift_JISで書かれたCSVをUTF-8として開いてごにょごにょした後に再度Shift_JISのCSVとして保存するときとかによく起こります。Windows様のためですね。*1:U+2015も変換不可でしたが、Vista以降では修正されているようです。(3)月別アーカイブはてなブログをはじめよう!s_osaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。