2008-11-21 全角ハイフンを含む文字列の文字コードを UTF-8 に変換すると文字化けする 文字コード Ruby Perl Unicode には似た記号が多い おそらく原因は、Unicode に記号が多いため、全角ハイフンなのか全角のマイナス記号なのか区別がついていないからではないかと思われる。 Jcode Respect UTF-8 の全角ハイフンが Perl の正規表現にマッチしなくて悩んだ Unicode - 似た文字同士にご用心 解決方法 文字コードを変換する前に、文字化けする文字を安全な文字に置換してしまう。最終的な出力を行う時に文字コードを変換する。 文字コードを変換する前に、文字列をバイナリ化して文字化けする文字を安全な文字に変換してしまう。例: unpack と pack を利用するなど 最初の解決方法が一番簡単だと思われるが、正規表現でマッチさせる作業が入ると煩雑になる。