2009/08/18

全角ハイフン(U+2010)の欠落

VS2005でActiveReportsを使って開発していたら(XPPro環境デス)、住所に入っていた全角ハイフンが消えちゃった!Y(>_<、)Y

データでは「‐」(全角ハイフン)があるのに、プレビューすると消えている。──あー、そういえば以前、パンチ会社を変えたときに、師匠たちが一瞬大騒ぎしていたような記憶アリ。"たしかあのときは「-」(全角マイナス)に置換してしのいんだんだっけ?"と思いだして、デスマーチの手伝いの真っ只中ではとりあえずそれで凌ぎましたが。


徹夜明けて、落ち着いてくるとビミョーにひっかかってきたので、多少ググってみました。

すると出てきた…。

Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP で GDI+ API 関数を使用するアプリケーションを使用すると、Unicode ハイフン文字 (U+2010) が描画されない

原因

この問題が発生するのは、GDI+ が日本語の全角ハイフン (U+2010) の Unicode コード文字を描画しないためです。代わりに、GDI+ は文字をソフト ハイフン (U+00AD) として描画します。しかし、U+2010 コードは、ハイフン マイナス文字 (U+002D) として描画される必要があります。


なんだこりゃ。(-_-#)

つまりGDI+を使っているヤツではU+2010は全滅ってわけですか…。修正プログラムも出ているっぽいけど。こんなのイチイチ、マシンに入れて歩いてられないよなぁ(運用前後はバタバタしているから入れ忘れそう)。印刷レベルでは全角マイナスで頑張るしかないか。