問題 RubyでUTF-8からWindows-31J(Shift_JIS)に文字コードを変換すると、正常に変換できそうであるにもかかわらず、実際には変換が行えず例外が投げられる文字があります。 "\u{301C}" # => "〜" "\u{301C}".encode(Encoding::Windows_31J) # => Encoding::UndefinedConversionError: U+301C from UTF-8 to Windows-31J 原因 原因については UTF-8 → cp932(Shift_JIS)変換表 - fudist あたりがわかりやすいです。 例外が投げられる文字はたとえば以下の様なものがあります。*1 文字コード(UTF-8) 文字 備考 U+00A2 ¢ セント記号(通貨) U+00A3 £ ポンド記号(通貨) U+00AC ¬ NOT記号 U+2