日本語PDFの発行機能などを開発する時に、元々UTF-8になっていた文書をSHIFT-JISに変換する必要が発生することがあります。その時、変換時に発生する不正な日本語文字マッピングを、変換かける前に以下のようにプログラム的に書き換えると、無事に変換ができます。
文字コード
波ダッシュ(~)UTF-8: 0xEFBD9E → SHIFT-JIS: 0xE3809C
全角チルダ(―)UTF-8: 0xEFBC8D → SHIFT-JIS: 0xE28892
ちなみに、これをRubyで書く場合は以下のようなソースになります:
text = text.gsub(/\xEF\xBD\x9E/,”\xE3\x80\x9C”)
text = text.gsub(/\xEF\xBC\x8D/,”\xE2\x88\x92″)